我正在考虑使用.off()
和.on()
在jQuery中关闭和启用事件处理程序。
我可以通过以下方式完美地将所有附加事件处理程序关闭:
$('.eventone').off();
或作为多重选择器:
$('.eventone, .eventtwo, .eventthree').off();
但是,我没有所有(甚至任何)事件处理程序转回 。我正在使用这个:
$('.eventone, .eventtwo, .eventthree').on();
我有什么问题吗?
我是否真的必须声明与类相关联的每个事件才能重新开启?
答案 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;