如何在流星/ javascript中禁用html元素上禁用鼠标单击事件

How to disable mouse click events on disabled html elements in meteor / javascript

本文关键字:元素 鼠标 单击 事件 html 流星 javascript      更新时间:2023-09-26

我用meteor。我有一堆按钮目前是禁用的。我有一个事件监听器,打开一个模态点击按钮。现在,这些按钮的状态是disabled。即便如此,当我点击禁用按钮时,模态仍然打开。禁用一个元素不会阻止由它生成的任何事件吗?

模板:

<a class="btn btn-sm btn-default" id="{{name}}" name ="editRole"
   disabled="disabled" data-toggle="tooltip" data-placement="top"
   title="Not available right now">
  <em class="fa fa-pencil"></em>
</a>
<a class="btn btn-sm btn-danger" id={{name}} name="deleteRole"
   disabled="disabled"  data-toggle="tooltip" data-placement="top"
   title="Not available right now">
  <em class="fa fa-trash"></em>
</a>

模板事件:

'click [name=editRole]'(event){
        Session.set("editRole",$(this).attr('name'));
        console.log("The role to be edited is: " + Session.get("editRole"));
        Modal.show('editRoleModal');
    },
'click [name=deleteRole]'(event){
        console.log(this);
        console.log("button clicked is: " + $(this).attr('name'));
        Session.set("deleteRole", $(this).attr('name'));
        Modal.show('confirmRoleDeleteModal');
    }

我想到的唯一方法是像下面这样添加禁用类:

disabled="disabled"似乎只使图标变灰,但仍然产生事件,而class="... disabled"似乎阻止事件。

您不能禁用a元素-因此disabled属性除了使HTML无效之外没有任何作用。

要停止鼠标事件工作,将事件处理程序附加到元素并在其上使用event.preventDefault(),在现有的单击处理程序中检查元素上的data-disabled属性或在CSS类中使用pointer-events: none,您可以根据需要切换打开/关闭。不过要注意,IE <11

不支持pointer-events