いいえ、これは単純なトグルの質問ではありません。私はtoggle()関数とdivを表示/非表示する方法を知っています。内側のラベルと箱を想像して:あなたは全体のdiv上の任意の場所をクリックすると、それはクラスhidden
を削除する必要がありますjQuery - クリック時にdivクラスを切り替える
<div class="section hidden">
<div class="section-legend">My Section</div>
</div>
。ボックスは拡大表示されます。ボックスはクラスhidden
ではないので、クリック可能ではありません。
代わりにをクリックすると、クラスhidden
がメインdivに再度追加されます。明らかに、凡例のclickイベントはstopPropagation()を必要とします。凡例をもうクリック可能にしてはいけません。もう一度凡例をクリックすると、その欄全体をクリックして開く必要があります。
私が正しく動作するために何かを得ることができない、と私は、これは愚かなコードを知っている:
$(document).ready(function() {
$('.section.hidden').click(function() {
$(this).removeClass('hidden');
$(this).find('.section-legend').click(function(e) {
$(this).parent().addClass('hidden');
e.stopPropagation();
});
});
$('.section-legend').click(function(e) {
$(this).parent().addClass('hidden');
e.stopPropagation();
$(this).parent().click(function() {
$(this).removeClass('hidden');
});
});
});
人々は常に望んで怠惰になっているHTMLにこのJavaScriptを追加しますjsfiddle .. – Ben
は何とかdiv.hiddenが表示されますか?私はそれが本当に「隠されている」場合、それがクリック可能であることがどういう意味かわかりません。 – Ben
本当に隠されていません。隠された部分は、折りたたまれたセクションのクラスの名前です。それが意味をなさないことを意味するいくつかの他のコードがありますが、ここで私はそれがどのように混乱しているかを見ることができます。 – BadHorsie