优秀的下拉jQuery UI Multiselect小部件,支持通过jQuery UI进行样式化Themeroller仍然不支持在下拉行中包含图像。
我在Stackoverflow中没有看到任何问题的答案,但似乎经常在互联网的各个方面被问到,所以我在下面给出了这个问题的答案..
答案 0 :(得分:6)
(另请参阅我的 FIDDLE 示例以查看此操作,)
以下内容基于< pdlove'在这个优秀的UI Multiselect for jQuery中引入图像的使用。
通过设置选择器选项行html,可以在复选框文本区域中添加对行项目的图像支持:
<option value="somevalue" image="yourimage.jpg" class="multSelktrImg">
normal visible text
</option>
我还会在样式表css文件中添加一个类控件,以设置在下拉列表的选项行项目中呈现的图像大小,以及图像,标签和跨度文本的几个位置设置。 在这个例子中,我使用类名&#39; multSelktrImg&#39;,所以在css文件中它看起来像这样:
.multSelktrImg span{position: relative;top: 10px;vertical-align: middle;
display: inline-flex;}
.multSelktrImg input {vertical-align: -2px;}
.multSelktrImg img {position: relative;height: 30px;margin: 2px 6px;top: -10px;}
现在更改src / jquery.multiselect.js文件
搜索以获取第130行周围的以下匹配代码(取决于您使用的脚本的版本ID):
// build items
el.find('option').each(function( i ){
var $this = $(this),
parent = this.parentNode,
title = this.innerHTML,
description = this.title,
....
ADD 以上一行&#34; title = this.innerHTML,&#34;:
image = this.getAttribute("image");
所以它看起来像这样:
// build items
el.find('option').each(function( i ){
var $this = $(this),
parent = this.parentNode,
image = this.getAttribute("image");
title = this.innerHTML,
description = this.title,
现在搜索以获取围绕第180行的以下匹配代码:
// add the title and close everything off
html += ' /><span>' + title + '</span></label></li>';
....
使用以下内容替换代码行以允许渲染图像:
// add the title and close everything off
html += ' /><span>';
if (image != null) {
html += '<img src="'+image+'" class="multSelktrImg">';
}
html += title + '</span></label></li>';
保存脚本src / jquery.multiselect.js文件的新版本,现在图像将出现在multiselect下拉列表中。使用&#39; multSelktrImg&#39;通过改变css文件中类的像素大小来控制显示图像大小的类值。
在FIDDLE版本中,我更改了jQuery脚本的最小化版本,并创建了Select对象的初始化。
答案 1 :(得分:1)
对不起这个答案。我想通过评论回答这个问题,但我没有足够的意见来评论这个问题 这条链接Github Issue @MartinSansone
对我有用