2012-02-26 42 views
1

我正試圖「停止」#mydiv上的點擊動作,我的意思是如果我在#mydiv上點擊100次,我希望不透明度只發生一次,而不是100次,我在網絡上發現了這種解決方案,解綁「,我認爲這是我第一次使用它,但現在它不起作用,這可能是一個簡單的錯誤,但我真的不知道在哪裏看。我的評論我所有的jQuery的頁面,我只是有文件準備行和那些2個功能,但它並沒有停止動作上點擊:解除綁定並不真正起作用:還有其他解決方案嗎?

$('#mydiv').bind('click', function() { 
    $('.myclass').animate(opacity: 0.25); 
}); 

$('#mydiv').unbind('click', function() { 
    $('.myclass').animate(opacity: 0.25); 
}); 

非常感謝您的幫助

回答

3

使用jQuery 1.7+:

$('#mydiv').on('click', anim); 

$('#mydiv').off('click', anim); 


function anim() { 
    $('.myclass').animate(opacity: 0.25); 
} 

你甚至可以這樣做:

$('#mydiv').on('click', anim); 

function anim() { 
    $('.myclass').animate(opacity: 0.25); 
    $('#mydiv').off('click', anim); 
} 

$('#mydiv').one("click", function() { 
    $('.myclass').animate(opacity: 0.25); 
}); 

當然它應該是:

$('.myclass').animate({opacity: 0.25}, speed); 
+0

哇謝謝!快速和偉大的答案!非常感謝! – 2012-02-26 19:01:49

+0

@Miles_Crew,不要忘記「接受」最好的答案。恕我直言,這一個是因爲它認識到'on()'作爲新的首選方法。 – Sparky 2012-02-26 19:11:01

3

只需使用:

$('#mydiv').unbind('click'); 

或者

如果你想點擊,而不是隻發生一次,使用one

$('#mydiv').one(function() { 
    $('.myclass').animate(opacity: 0.25); 
}); 
+0

謝謝!是的,它的工作原理!謝謝 – 2012-02-26 19:02:24

+0

@Miles_Crew:不客氣:) – Sarfraz 2012-02-26 19:02:54

相關問題