我在js中有一个var,它包含一个点击动作。这个动作被绑定到几个不同的div:用jquery制作我自己的手风琴风格切换
<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,它会隐藏我刚看到的内容并显示另一个内容。但问题是,由于'clicker'内部的解除绑定功能,我点击的任何东西都会失去它的喀哒声功能。我这样做是因为隐藏的内容具有可点击的内容,而我现在在隐藏的内容中单击的任何内容都会再次触发'clicker'。
如果不使用手风琴插件,更智能的方法是什么?
如何检查一个div是否绑定了一个函数,如果没有,重新绑定它或某种类型的东西?我要找的所有东西都是将div.clickable重新绑定为'clicker',一旦它被关闭,即另一个div.clickable .hidden正在被查看。
真棒。并用更少的代码! – willdanceforfun 2010-11-14 13:53:36
@KeenLearner - 少绑定:)我添加了一些替代品,使其更清晰发生了什么,挑选你的味道:) – 2010-11-14 13:54:36
更正NO绑定!真棒。从你的帮助中学到了很多 - 欢呼声。 – willdanceforfun 2010-11-14 13:58:19