2012-02-26 63 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

相关问题