带图像的jQuery UI Multiselect小部件(Eric Hynds版)

时间:2014-03-08 20:05:07

标签: image jquery-ui multi-select themeroller jquery-multiselect

优秀的下拉jQuery UI Multiselect小部件,支持通过jQuery UI进行样式化Themeroller仍然不支持在下拉行中包含图像。

我在Stackoverflow中没有看到任何问题的答案,但似乎经常在互联网的各个方面被问到,所以我在下面给出了这个问题的答案..

2 个答案:

答案 0 :(得分:6)

(另请参阅我的 FIDDLE 示例以查看此操作,)

enter image description here

以下内容基于< 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

对我有用