jquery .off() 与指针事件:无

Posted

技术标签:

【中文标题】jquery .off() 与指针事件:无【英文标题】:jquery .off() vs pointer-events: none 【发布时间】:2017-05-21 12:12:43 【问题描述】:

我有一个按钮,点击后在 jquery 中执行一些逻辑。在其他一些事件之后,我希望单击按钮停止做任何事情。使用$(".myBtn").off(click.mynamespace)$(".myBtn").css("pointer-events", none); 哪个更好?

我认为使用指针事件 none 它实际上会禁用任何点击、聚焦和悬停动作。关闭 jquery 后,它只会停止执行先前分配的 .click() 事件。

【问题讨论】:

使用 off() 获得完整的浏览器支持。 off() 在您的情况下更好。 pointer-events:none 基本上会使元素停止响应您的光标,而不仅仅是 javascript 【参考方案1】:

我建议第三种选择:在您的按钮元素上设置disabled 属性。除了抑制鼠标和点击事件外,默认样式将变为灰色,通知用户该按钮不能被点击。如果您稍后想重新启用该按钮,只需删除该属性即可。

$('button').prop('disabled', true);  // disable buttons
$('button').prop('disabled', false);  // enable buttons

关于你原来的两个建议:

如果按钮永远不会重新启用,请考虑将其完全删除,而不要只删除其单击事件侦听器。相反,如果按钮可能会通过相同的操作重新启用,请不要移除事件侦听器。 以这种方式使用pointer-events css 属性将是一个糟糕的hack。它旨在让点击“穿过”透明元素到后台的其他控件。

【讨论】:

以上是关于jquery .off() 与指针事件:无的主要内容,如果未能解决你的问题,请参考以下文章

JQuery_003_事件绑定与解绑

JQuery事件——绑定多事件.on()和卸载事件.off()

219 jQuery事件处理: off() 解绑事件,trigger() triggerHandler() 自动触发事件

jQuery

jquery之 off()方法

JQjq动态绑定事件.on()解绑事件off()