为了账号安全,请及时绑定邮箱和手机立即绑定

禁用 div 上的属性仍会触发单击事件

禁用 div 上的属性仍会触发单击事件

慕哥9229398 2024-01-03 15:20:06
我有一个 div,其中有一个图标,我向该 div 添加了禁用属性,并且单击事件仍然会触发。所以我创建了 div 的副本并将其更改为按钮。两者都有点击事件,但点击时按钮不会触发,但 div 会触发。这是为什么,以及如何在单击 div 时停止触发单击事件?我知道我可以在点击事件期间检查禁用属性,但想知道为什么我必须这样做以及为什么禁用属性在 div 上不起作用$('#btn').on('click', function() {  alert("clicked");});$('#btn1').on('click', function() {  alert("clicked");});#btn {  cursor: pointer;}#btn[disabled] {  cursor: not-allowed;}#btn1 {  cursor: pointer;}#btn1[disabled] {  cursor: not-allowed;}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script><link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" /><link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" /><div id="btn" class="disabled" disabled>  <i class="fa fa-plus"></i></div><button id="btn1" class="fa fa-undo" disabled>click</button>
查看完整描述

3 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

<div>没有disabled属性,点击时必须检查是否被禁用。


$('#btn').on('click', function() {

  if (!$(this).prop("disabled"))

  alert("clicked");

});


查看完整回答
反对 回复 2024-01-03
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

禁用属性在 上不起作用div。如果您坚持不检查属性,可以使用:not()选择器。


$('#btn:not(.disabled)').on('click', function() {

  alert("clicked");

});

'#btn:not(.disabled)'查找具有 idbtn但不具有disabled类的元素。


查看完整回答
反对 回复 2024-01-03
?
手掌心

TA贡献1942条经验 获得超3个赞

您可以使用以下 css 来禁用 div 元素上的单击,因为 div 元素没有禁用属性:


 pointer-events: none;

 cursor: default;

希望这有帮助..谢谢


查看完整回答
反对 回复 2024-01-03
  • 3 回答
  • 0 关注
  • 122 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信