我正在使用twitter bootstrap并寻找一个看起来像按钮组的下拉列表。问题在于,在所有twitter bootstrap示例中,下拉菜单仅作为菜单项,因此所选项目并未真正更改:
http://twitter.github.com/bootstrap/javascript.html#dropdowns
有谁知道如何设计像按钮组一样的下拉?
答案 0 :(得分:3)
我将此网页搜索转换为jquery插件:
(function($) {
$.fn.buttonSelect = function() {
this.hide().wrap('<div class="btn-group"/>');
var select = this.parent();
var selectedOption=this.find('option[selected]').length>0?this.find('option[selected]'):this.find('option:nth(0)');
var currentValue = selectedOption.val();
var currentText = selectedOption.text();
select.html(
'<input type="hidden" value="' + this.val() + '"/>'+
'<a class="btn dropdown-toggle" data-toggle="dropdown" href="javascript:;">'+
'<span>'+currentText+'</span>'+
' <span class="caret"></span>'+
'</a>'+
'<ul class="dropdown-menu"></ul>');
var dropdownMenu=select.find('.dropdown-menu');
this.find('option').each(function(o, q) {
dropdownMenu.
append('<li><a href="javascript:;" data-value="' + $(q).attr('value') + '">' + $(q).text() + '</a></li>');
});
var hidden=select.find('input[type=hidden]');
var label=select.find('.btn span:nth(0)');
dropdownMenu.find('a').click(function() {
hidden.val($(this).data('value')).change();
label.text($(this).text());
});
return this;
};
})(jQuery);
然后,使用$(elem).buttonSelect();使select元素看起来像按钮组。