【发布时间】:2015-01-07 10:53:21
【问题描述】:
我使用 jquery UI - 选择菜单来构建一个带有图片的列表。 我关注this link,这很好。 但是当您选择一个项目时,只是复制文本,而不是图片。 我解释了为什么我想要图片。我有一个没有文字的列表,只有图片,然后当你选择一个项目时,你会看到一个空的跨度...... 有人有想法吗?
这是我的代码
<script type="text/javascript">
$(function () {
$.widget("custom.iconselectmenu", $.ui.selectmenu, {
_renderItem: function (ul, item) {
var li = $("<li>", { html: item.element.html() });
var attr = item.element.attr("data-style");
if (typeof attr !== typeof undefined && attr !== false) {
$("<span>", {
style: item.element.attr("data-style"),
"class": "ui-icon TFOOptlstFiltreImg"
}).appendTo(li);
}
return li.appendTo(ul);
}
});
$("#people")
.iconselectmenu().iconselectmenu("menuWidget").addClass("ui-menu-icons");
});
</script>
<style type="text/css">
select
{
width: 200px;
}
</style>
<select name="people" id="people">
<option value="1" data-style="background-image: url('http://www.gravatar.com/avatar/b3e04a46e85ad3e165d66f5d927eb609?d=monsterid&r=g&s=16');">John Resig</option>
<option value="2" data-style="background-image: url('http://www.gravatar.com/avatar/e42b1e5c7cfd2be0933e696e292a4d5f?d=monsterid&r=g&s=16');">Tauren Mills</option>
<option value="3" data-style="background-image: url('http://www.gravatar.com/avatar/bdeaec11dd663f26fa58ced0eb7facc8?d=monsterid&r=g&s=16');">Jane Doe</option>
</select>
【问题讨论】:
-
你记得把
$( "<li>", { text: item.label } )改成$( "<li>", { html: item.element.html() } )吗? -
是的。我更新我的问题
-
实际上,通过您的设置,您根本不需要我之前的评论。您的 span 应该有一个
background-image,但很可能浏览器会看到它没有内容并以宽度和高度 0 呈现它,因此您还应该适当地手动调整大小。如果没有工作示例,我无法提供更多细节(小提琴?)
标签: javascript jquery-ui select