【发布时间】:2012-08-04 12:38:36
【问题描述】:
我正在使用 twitter 引导程序并寻找一个看起来像按钮组的下拉菜单。问题在于,在所有 twitter 引导示例中,下拉菜单仅充当菜单项,因此所选项目并没有真正改变:
http://twitter.github.com/bootstrap/javascript.html#dropdowns
有人知道如何设计像按钮组这样的下拉菜单吗?
【问题讨论】:
标签: javascript css twitter-bootstrap
我正在使用 twitter 引导程序并寻找一个看起来像按钮组的下拉菜单。问题在于,在所有 twitter 引导示例中,下拉菜单仅充当菜单项,因此所选项目并没有真正改变:
http://twitter.github.com/bootstrap/javascript.html#dropdowns
有人知道如何设计像按钮组这样的下拉菜单吗?
【问题讨论】:
标签: javascript css twitter-bootstrap
我将此网页发现转换为 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();使选择元素看起来像按钮组。
【讨论】: