我有几次点击事件:
t.string :confirmation_token
t.datetime :confirmed_at
t.datetime :confirmation_sent_at
在我的应用程序的不同部分,我想关闭点击,然后再次打开它们:
我可以关闭调用此功能的点击:
$(function () {
$('#button1').click(function () {
//do samething...
});
$('#button2').click(function () {
//do samething...
});
.....
});
现在我无法恢复点击功能。我试过像
这样的东西function keysLock() {
$('#button1').off('click');
};
(和许多类似的东西)但它不起作用。
答案 0 :(得分:3)
... .on()
... .off()
所以是的
分配点击自定义功能,如:
function doThisStuffOnClick () {
// do someshitng
}
而不是使用他.on()
方法:
$("#button1").on("click", doThisStuffOnClick);
而不是将其关闭:
$("#button1").off("click");
再次将其重新打开
$("#button1").on("click", doThisStuffOnClick);
<小时/> 请在此处阅读更多内容:
.off()
jQuery Docs
答案 1 :(得分:3)
只是根据您的评论添加替代解决方案,您可以使用变量来启用/禁用事件,然后您不必删除处理程序,如下所示:
$(function () {
var someSpecificCondition = false;
function doThisStuffOnClick () {
if (someSpecificCondition) {
return;
}
// do something
}
$('#button1, #button2').click(doThisStuffOnClick);
});