我有一個 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");
});

ABOUTYOU
TA貢獻1812條經驗 獲得超5個贊
禁用屬性在 上不起作用div。如果您堅持不檢查屬性,可以使用:not()選擇器。
$('#btn:not(.disabled)').on('click', function() {
alert("clicked");
});
'#btn:not(.disabled)'查找具有 idbtn但不具有disabled類的元素。

手掌心
TA貢獻1942條經驗 獲得超3個贊
您可以使用以下 css 來禁用 div 元素上的單擊,因為 div 元素沒有禁用屬性:
pointer-events: none;
cursor: default;
希望這有幫助..謝謝
- 3 回答
- 0 關注
- 209 瀏覽
添加回答
舉報
0/150
提交
取消