1

我正在研究在 jQuery 中使用.off().on()关闭和打开事件处理程序。

我可以使用以下方法完美关闭所有附加的事件处理程序:

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

或作为多重选择器:

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

但是,我没有让所有(甚至任何)事件处理程序重新打开. 我正在使用这个:

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

有什么我做错了吗?

我实际上是否必须声明与该类关联的每个事件才能重新打开它?

4

1 回答 1

3

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

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;
于 2013-08-18T10:29:58.523 回答