【问题标题】:jquery .off() vs pointer-events: nonejquery .off() 与指针事件:无
【发布时间】: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。

标签: javascript jquery html css


【解决方案1】:

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

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

关于你原来的两个建议:

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

【讨论】:

    猜你喜欢
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    • 2012-12-08
    • 2013-05-16
    • 1970-01-01
    相关资源
    最近更新 更多