Twitter ブートストラップを使用して、ボタン グループのように見えるドロップダウンを探しています。問題は、すべての Twitter ブートストラップの例で、ドロップダウンがメニュー項目としてのみ機能するため、選択された項目が実際には変更されないことです:
http://twitter.github.com/bootstrap/javascript.html#dropdowns
ボタン グループのようなドロップダウンをどのように設計すればよいか、誰にもわかりませんか?
Twitter ブートストラップを使用して、ボタン グループのように見えるドロップダウンを探しています。問題は、すべての Twitter ブートストラップの例で、ドロップダウンがメニュー項目としてのみ機能するため、選択された項目が実際には変更されないことです:
http://twitter.github.com/bootstrap/javascript.html#dropdowns
ボタン グループのようなドロップダウンをどのように設計すればよいか、誰にもわかりませんか?
この Web の調査結果を 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 要素をボタン グループのように見せます。