jquery .off()vs pointer-events:none

时间:2017-05-21 12:12:43

标签: javascript jquery html css

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

我认为使用指针事件,它实际上禁用任何点击,焦点和悬停操作。并且关闭jquery只会停止执行先前发出的.click()事件。

1 个答案:

答案 0 :(得分:1)

我建议使用第三个选项:在按钮元素上设置disabled属性。除了抑制鼠标和单击事件之外,默认样式将更改为显示为灰色,通知用户无法单击该按钮。如果您以后想要重新启用该按钮,则删除属性很简单。

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

关于你原来的两条建议:

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