あなたは正しい軌道に間違いだが、あなたが一度にオープン1つのドロップダウンリストを持っているつもりなら、あなたは彼らが何らかの形で関係しているとします。幸いなことに、あなたのマークアップはすでにそこにあるので、私たちがしなければならないことは、JSを修正することだけです。私はあなたのjsFiddleプロジェクトをここで更新しました:http://jsfiddle.net/ninjascript/ngGGy/4/
最初にセレクタ。 jQueryのは、あなたがこのような^=
を使用して、類似した属性を選択できます:
$('div[id^=button]').DropDownSelect();
今、私たちは自分のプラグインビットを更新する必要があります。 「thislist」であったものが現在「everylist」と呼ばれていることに注目してください。これで、クリックされたボタンに関連付けられたリストを開く前に、すべてのリストがクリックで閉じるように強制できます。
(function($){
$.fn.DropDownSelect = function (settings) {
jQuery.globalEval("var zindex = 100");
var thiselement = $(this);
var everylist = thiselement.next('ul');
thiselement.click(function() {
var thislist = $(this).next('ul');
if (everylist.is(':visible')) {
everylist.slideUp();
}
thislist.css('z-index', ++zindex).slideDown();
});
};
})(jQuery);
幸運!
極端な短時間での完全性(まだ受け入れられないことを意味する)余分な質問:ドロップダウンをグループ化して別の設定を行うことは可能ですか?このようなものhttp://jsfiddle.net/ngGGy/5/ –
@ Kalle H.Väravas:これがあなたの意味することを望みます:http://jsfiddle.net/pimvdb/ngGGy/7/。 – pimvdb
さて、はい、いいえ。基本的には、あなたはそれをとにかく解決し、私はその方法を見ることができます。私はgroup1が複数のオープンを持つことができ、group2はその時点で1つしか持たないことを意味しました。しかし、一般的にグループ化は私の問題でした。あなたはそれを解決し、別の設定を追加することは私にとっては問題ではありません。ありがとうございます:) –