在jQuery中转换所有事件.off()和.on()

时间:2013-08-18 10:21:50

标签: jquery

我正在考虑使用.off().on()在jQuery中关闭和启用事件处理程序。

我可以通过以下方式完美地将所有附加事件处理程序关闭

$('.eventone').off();

或作为多重选择器:

$('.eventone, .eventtwo, .eventthree').off();

但是,我没有所有(甚至任何)事件处理程序转回 。我正在使用这个:

$('.eventone, .eventtwo, .eventthree').on();

我有什么问题吗?

我是否真的必须声明与相关联的每个事件才能重新开启?

1 个答案:

答案 0 :(得分:3)

是的,.off基本上删除了这些事件,因此您将重新声明它们。你最好拥有一个全局变量,这样你的事件处理程序就可以检查它是否设置为off或on,如果off则返回。只需将变量更改为off或on,true或false或任何适合您的

var eventsOn = false;
function myFunc() {
   if(!eventsOn) return;

   //Code to run here.
}

//Somewhere else set your events and turn eventsOn to true
jQuery("#mydiv").on("click",myFunc);
eventsOn = true;