我在代码中使用了el.one('click', fn)
。现在我需要刷新.one()
事件。我的意思是我想在同一个加载页面中每次点击fn
多次致电el
。
我知道,.on()
事件在我的案例中听起来不错。但事实并非如此,我需要.one()
。我只需要几次强制.one()
像.on()
这样的行为。
好吧,有什么解决方案吗?
答案 0 :(得分:2)
只要你需要它就可以开启.on()
,然后执行.off()
将其关闭。
示例:
var aFunc = function() { console.log('click!'); };
$("#foo").one("click", aFunc);
// some other stuff happens and when you need it...
$("#foo").on("click", aFunc);
// now you don't want it anymore
$("#foo").off("click", aFunc);
这是完全未经测试的,但我认为它可能有用。
重要的是要注意,要转换处理程序.off()
,您无法向.on()
提供匿名函数,这就是函数变量的原因。