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事件——绑定多事件.on()和卸载事件.off()
219 jQuery事件处理: off() 解绑事件,trigger() triggerHandler() 自动触发事件