我在 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 重新绑定到“clicker”,一旦它被关闭,即正在查看另一个 div.clickable .hidden。