私は2つ以上の順序付けられていないリストを持っています。jqueryの表示リストの項目
最初のリストitmeをクリックすると、下の他のすべてのliが表示され、別のulに開いている他のliも非表示になります。
正しく表示されないようです。
クラス名は、コアコードの内部に深く生成され、他の要素で使用されているため、私が持っている例から変更することはできません。
ありがとうございました。
http://jsfiddle.net/ukkpower/En7KV/4/
私は2つ以上の順序付けられていないリストを持っています。jqueryの表示リストの項目
最初のリストitmeをクリックすると、下の他のすべてのliが表示され、別のulに開いている他のliも非表示になります。
正しく表示されないようです。
クラス名は、コアコードの内部に深く生成され、他の要素で使用されているため、私が持っている例から変更することはできません。
ありがとうございました。
http://jsfiddle.net/ukkpower/En7KV/4/
これを試してみてください:
$('ul').on('click','.maincat',
function(e){
// prevents the default click action of the a element
e.preventDefault();
// finds the sibling elements, and shows them if hidden,
// hides them if visible
$(this).siblings().toggle();
// finds the closest ul ancestor of the clicked element
// finds the other ul siblings of that ancestor-ul
// finds the '.maincat' class element's siblings that are visible
// hides those visible elements
$(this)
.closest('ul')
.siblings('ul')
.find('.maincat')
.siblings('li:visible')
.hide();
});
:
はjQueryの1.7のように、live()
方法のような、非推奨(とされる、ということに注意してくださいし、サポートをしたり、より多くのおそらくはになります)。 jQuery 1.7+の場合、on()
メソッド(下記参照)を使用し、1.7より前にはdelegate()
メソッドを使用することをお勧めします。
live()
のAPIドキュメントを参照してください(参考資料を参照)。
closest()
: 参考にご注意ください。
delegate()
。e.preventDefault()
。find()
。hide()
。live()
。on()
。siblings()
。toggle()
。ありがとうございます、デイビッド、それを行うことはできませんでした。私は新しいことを学びました。 –
あなたは大歓迎です。受諾のためにあなたに*ありがとう! =) –
リファレンスを追加する答えを編集し、 'live()'の代わりに 'on()'を使うことについての注意を書きました。 –
*何をすべきですか? –
*表示する必要があります* – dfsq
申し訳ありませんが、表示する必要があります " –