簡體   English   中英

禁用href的點擊傳播

[英]Disable click propagation for href

此代碼段解釋了我的情況:

 $("#b").click(function(e) { e.stopPropagation(); }); $("#b").click(function() { alert("trigger div"); }); 
 a { display: block; position: relative; width: 100px; height: 100px; background-color: gray; } div { position: absolute; width: 50px; height: 50px; top: 0; left: 0; background-color: red; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <a href="stackoverflow.com" id="a"> <div id="b">Test</div> </a> 

問題是我只想從div觸發click函數,而不是從a標記觸發href 在類似的問題中,我找到了event.stopPropagation() ,但是在這種情況下不起作用。

您需要使用event.preventDefault()方法阻止默認的單擊事件操作。

 $("#b").click(function(e) { e.preventDefault(); alert("trigger div"); }); 
 a { display: block; position: relative; width: 100px; height: 100px; background-color: gray; } div { position: absolute; width: 50px; height: 50px; top: 0; left: 0; background-color: red; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <a href="stackoverflow.com" id="a"> <div id="b">Test</div> </a> 

$("#a").click(function (event) {
    event.preventDefault();
});

$("#b").click(function (event) {
    event.stopPropagation();
    alert("trigger div");
});

沒有javascript:

 #a { display: block; position: absolute; width: 100px; height: 100px; background-color: gray; } div { position: absolute; width: 50px; height: 50px; background-color: red; } 
 <a href="stackoverflow.com" id="a"> <a href="#"><div onclick="alert('trigger div')">test</div></a> </a> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM