我在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