[英]stopPropagation() not working
單擊圖像時我想停止鼓泡。 我無法根據需要在href上設置javascript無效。 我已經使用了stopPropagation,但是它不起作用。
function showurl(e){
e.stopPropagation()
window.location="http://www.yahoo.co.in"
}
<a href="http://www.google.com">
<img src="http://media.expedia.com/media/content/shared/images/navigation/expedia.co.in.png" onclick="showurl(event)" />
</a>
由於這是一個jQuery問題,我建議您不要使用onclick
屬性。 它們僅支持單個處理程序,並且它們是“丑陋的”(閱讀:很難找到和維護):)
$('img").onclick = function(e) {
e.preventDefault();
window.location="http://www.yahoo.co.in";
}
要么
$('img").onclick = function() {
window.location="http://www.yahoo.co.in";
// return false here does the same as e.stopPropagation() and e.preventDefault();
return false;
}
由於此處理程序適用於所有img
元素,因此您可能希望像這樣使用屬性來驅動整個事物:
將目標網址作為data-url
屬性放置在圖片中
<a href="http://www.google.com">
<img src="http://media.expedia.com/media/content/shared/images/navigation/expedia.co.in.png"
data-url="http://www.yahoo.co.in" />
</a>
和代碼明智的:
$('img").onclick = function(e) {
// See if image has a data-url attribute
var url = $(this).data('url');
if (url){
window.location=url;
// only prevent default if it was an image with a link attribute
e.preventDefault();
}
}
我建議即使是基本的onclick
也可以從JS綁定它,然后使用return false;
onclick
或使用preventDefault
。 ( 演示 )
document.getElementsByTagName("img")[0].onclick = function() {
window.location="http://www.yahoo.co.in";
return false;
}
HTML
<a href="http://www.google.com">
<img src="http://media.expedia.com/media/content/shared/images/navigation/expedia.co.in.png" />
</a>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.