如何在流星/ javascript中禁用html元素上禁用鼠标单击事件
How to disable mouse click events on disabled html elements in meteor / javascript
我用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
相关文章:
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 将鼠标悬停在同级元素上的 jquery 上轻拂
- 将鼠标悬停在Angular JS中的一个元素上,并将Class添加到另一个元素中
- 如何在元素中处理鼠标事件,但不能在其子元素上处理
- 只要用户将鼠标悬停在jQuery中的某个元素上,就可以执行多次单击
- 单击其他元素或鼠标向上时隐藏输入框,但保留一次焦点
- 如果鼠标在元素上快速移动和关闭,则防止.hoop事件被垃圾邮件发送
- 为什么不是't html<对象>元素响应鼠标事件
- 如何激活下拉菜单:在一个元素上单击768px宽度下方,在另一个元素上将鼠标悬停在768px上方
- 如果鼠标离开父对象,则隐藏元素
- 当鼠标悬停在iframe上时,如何在iframe之外的元素上触发类
- 如何在鼠标悬停时显示带有拉斐尔元素(圆、线)的上下文菜单
- 当鼠标也在触摸另一个元素时,d3.js鼠标悬停事件未被触发
- 从鼠标点(及更多)查询位置元素
- 如何添加效果,以便将鼠标悬停在 SVG 元素上使其变大
- 可缩放容器鼠标上的可拖动元素在创建时从辅助对象上浮动
- 绘制DOM元素:鼠标事件会被背景元素混淆
- Fetch元素鼠标当前指向的Chrome开发工具已启用
- 如何使元素鼠标不可点击,但可以通过javascript单击
- 获取元素鼠标在iframe中的HTML