我想知道你们是否知道不同的方法来暂时禁用事件。让我更详细地解释一下:
假设我有一个div或按钮,它有一个订阅者来监听其onclick
事件。为了防止双击时方法正在执行某些ajax操作,我们可以采取以下几种方式:
- 在方法完成其工作之前禁用按钮
- 在方法完成其工作之前取消绑定,然后再次绑定。
- 使用某种标记系统,例如布尔值,以防止方法多次运行。
那么是否有其他方法,可能是一些更有效和更好的实践的javascript技巧或jQuery技巧。
提前致谢。
我想知道你们是否知道不同的方法来暂时禁用事件。让我更详细地解释一下:
假设我有一个div或按钮,它有一个订阅者来监听其onclick
事件。为了防止双击时方法正在执行某些ajax操作,我们可以采取以下几种方式:
那么是否有其他方法,可能是一些更有效和更好的实践的javascript技巧或jQuery技巧。
提前致谢。
我只是给那个 div 或 button 添加了一些类,比如 'disabled'。然后在我注册到 onclick
事件的函数中,检查该类是否存在。如果存在,就直接返回。
除了您所述的方法,我想不出其他办法了。
$(someElement).click(myHandler);
function myHandler() {
if (!myHandler.inProgress) {
myHandler.inProgress = true;
// Do stuff
// Set it back to false later
}
}
我想不出比你列出的更“棘手”或“优雅”的解决方案了。
禁用元素或删除绑定有什么效率问题吗?