2012-02-28 61 views
1

我正在使用jQuery的新On()和Off()。当一个事件关闭时,它可以重新打开吗?如果是这样,有没有人有一个简单的例子,他们可以告诉我?我环顾四周,但似乎无法掌握互联网上的内容。非常感谢!关闭事件并重新启动相同的备份 - jquery

回答

0

off()方法删除附加.on()的事件处理程序。如果你想让他们回来,你必须重新绑定事件处理程序。

0

如果您只是想暂停的事件处理程序,您可以用.off()删除它,然后再从头开始与.on()分配给它,或者你可以添加一个标志事件处理程序,它告诉你的代码实际上跳过处理它时,你设置了那个标志。

var buttonOff = true; 
$('.fun').on('click', '.button', function() { 
    if (buttonOff) return(false); 
    // normal button handling code here 
}); 
+0

嘿@ jsfriend00 - 我正在尝试做这样的事情。我离开吗? http://jsfiddle.net/WLU2m/ – Joe 2012-02-28 06:33:59

+0

@Joe,你需要阅读'.on()'和'.off()'的jQuery文档。你想在你的jsFiddle中做什么不会工作。这不是'.on()'或'.off()'工作的方式。 – jfriend00 2012-02-28 06:42:42

+0

好吧,我会检查出来。再次感谢 – Joe 2012-02-28 15:37:46

2

问:当一个事件关闭时,它可以重新打开吗?

不要将.on().off()视为开启和关闭事件。当点击有问题的元素指定的函数将被调用上发生

$("someselector").on("click", function() { }); 
// is equivalent to 
$("someselector").click(function() { }); 

也就是说,:.on()指定您提供给处理事件的函数,因此。

.off()方法删除您选择使用.on().click()先前分配处理程序 - 它不会暂时禁用该事件或事件处理程序。因此在拨打.off()后,您的点击处理函数将不会再次被调用,除非您使用.on().click()重新绑定它。您会注意到,在您提供的评论中提到,在您调用.off()之后,该元素再也不会响应点击,因为您永远不会再绑定另一个处理程序 - 调用.on()不带任何参数都不会执行任何操作。

在我看来,做你所问的最简单的方法是jfriend00显示的东西,也就是说,使用布尔变量来决定事件发生时是否做任何事情。该函数将在之间每点击一次,但如果代码的其他部分已经设置了该布尔值,那么该函数将返回而不执行任何操作。

+0

很好的解释@nnnnnn!我现在更了解它。谢谢 – Joe 2012-02-28 15:37:28

相关问题