0
我在嘗試禁用單擊的鏈接。我有一個附加的onmousedown事件監聽器。e.preventDefault()和e.cancelBubble不能與附加的偵聽器一起工作
if(document.addEventListener){
document.addEventListener("onmouseover", onMouseOverIdent, false);
document.addEventListener("onmousedown", onMouseDownIdent, false);
document.addEventListener("onmouseout", onMouseOutIdent, false);
}else{
if(document.attachEvent){
document.attachEvent("onmousedown",onMouseDownIdent);
document.attachEvent("onmouseover",onMouseOverIdent);
document.attachEvent("onmouseout", onMouseOutIdent);
}
}
在我的onmousedown事件功能我試圖使用從怪異模式這一功能:
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
但是它仍然通過點擊該鏈接並加載它。我不知道是什麼可能導致它,任何幫助,將不勝感激。
更新: 我忘了提到的另一件事是我在頁面上的所有錨標記元素上這樣做。這似乎使得之後刪除這些聽衆更成問題。
所以這很有趣。我在我的onmousedown事件中嘗試了這一點,但它不起作用,但在錨標籤上分別創建了一個新的即使監聽器,似乎也能正常工作。爲什麼它必須專門在鏈接上? e.returnValue是否可以防止傳播過程中出現冒泡現象? – crtjer 2012-07-22 20:34:32
@crtjer:我不得不作出一些假設,因爲你沒有在你的問題中包含相關的代碼。我認爲處理程序在''元素上。還有其他問題,所以我更新了我的答案。 – 2012-07-22 20:36:49
是的,這是在頁面上的每個錨點元素上。我現在遇到的問題是在循環中添加這些問題。我得到所有元素名稱,然後嘗試添加偵聽器。我意識到我必須使用匿名函數,但之後刪除會導致問題。 – crtjer 2012-07-31 16:00:47