bey*_*yst 4 search jquery jquery-plugins jquery-select2
我试图在选项旁边放置类似于GitHub中的标志示例的图标:http://ivaynberg.github.io/select2/#templating,但需要图标基于他们所在的optgroup.我每个选项都会使用相同的图标,而不是仅仅在他们的optgroup中.
JS
$(function() {
function format(ade) {
if (!ade.id)
return ade.text; // optgroup
return "<i class='icon-info'></i>" + ade.text;
}
function format(bob) {
if (!bob.id)
return bob.text; // optgroup
return "<i class='icon-user'></i>" + bob.text;
}
function format(jive) {
if (!jive.id)
return jive.text; // optgroup
return "<i class='icon-exchange'></i>" + jive.text;
}
$("#source").select2({
placeholder: "Get Started...",
allowClear: true,
minimumInputLength: 2,
formatResult: format,
formatSelection: format,
escapeMarkup: function(m) {
return m;
}
});
});
Run Code Online (Sandbox Code Playgroud)
HTML
<select id="source" class="search-box">
<option></option>
<optgroup label="Book of Business">
<option value="bob">Jasper Beardly</option>
<option value="bob">John Frink</option>
<option value="bob">Elizabeth Hoover</option>
<option value="bob">Edna Krabappel</option>
<option value="bob">Otto Mann</option>
</optgroup>
<optgroup label="Dashboard Content" id="ade">
<option value="ade">Additional time for Oklahoma customers to make payments</option>
<option value="ade">Who to call when you have California policy questions</option>
<option value="ade">Product Resource Center</option>
<option value="ade">Quote Tracker</option>
</optgroup>
<optgroup label="Community Discussions" id="jive">
<option value="jive">email account on Android phone</option>
<option value="jive">Problems with changing</option>
<option value="jive">Transfer discount for current client moving states </option>
<option value="jive">Quoting auto on existing client.</option>
<option value="jive">Where can I find sample ads/flyers/brochures for advertisement?</option>
</optgroup>
</select>
Run Code Online (Sandbox Code Playgroud)
Bum*_*tle 14
老实说,这有点乱.
您有三个具有相同名称但具有不同参数名称的函数.那不行.删除三种格式函数并将其替换为:
function format(o) {
if (!o.id)
return o.text; // optgroup
else if (o.id == 'bob')
return "<i class='icon-user'></i>" + o.text;
else if (o.id == 'ade')
return "<i class='icon-info'></i>" + o.text;
else
return "<i class='icon-exchange'></i>" + o.text;
}
Run Code Online (Sandbox Code Playgroud)
更好的是,让你的类名与你的id名称相匹配.所以
<option value="user">Jasper Beardly</option>
Run Code Online (Sandbox Code Playgroud)
等等
那么格式化函数就变成了:
function format(o) {
if (!o.id)
return o.text; // optgroup
else
return "<i class='icon-" + o.id + "'></i>" + o.text;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14553 次 |
| 最近记录: |