クリックアクションを保持する js に var があります。このアクションは、いくつかの異なる div にバインドされています。
<div class="clickable"><div class="hidden">inner content 1</div></div>
<div class="clickable"><div class="hidden">inner content 2</div></div>
<div class="clickable"><div class="hidden">inner content 3</div></div>
js は次のようになります。
$(document).ready(function(){
var clicker = function(){
$('.hidden').slideUp();
$(this).children('.hidden').slideDown();
$(this).unbind('click',clicker);
}
$('.clickable').bind('click',clicker);
});
上記のコードは基本的に機能します。div.clickable をクリックすると、非表示のコンテンツが表示されます。別の div.clickable をクリックすると、今見ていたコンテンツが非表示になり、別のコンテンツが表示されます。ただし、問題は、「クリッカー」内のバインド解除機能により、クリックしたものはすべてクリッカー機能を失うことです。非表示のコンテンツにはクリック可能なものがあり、非表示のコンテンツ内をクリックすると、再び「クリッカー」がトリガーされるため、これを行いました。
アコーディオン プラグインを使用せずに、これに対するよりインテリジェントなアプローチは何ですか?
div が関数にバインドされているかどうかを確認するにはどうすればよいですか? そうでない場合は、再バインドするか、そのようなものを使用できますか? 私が探しているのは、div.clickable が閉じられたら「クリッカー」に再バインドすることです。つまり、別の div.clickable .hidden が見られます。