클릭 한 링크를 비활성화하려고합니다. 나는 onmousedown 이벤트 리스너를 첨부했습니다.e.preventDefault() 및 e.cancelBubble이 연결된 리스너와 작동하지 않습니다.
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
그러나 여전히 링크로 클릭하고로드 할 것입니다 : 나의하면 onMouseDown 기능에서
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 이벤트에서이 작업을 시도했지만 작동하지 않았지만 앵커 태그에 별도로 새로운 리스너를 만드는 것이 효과가있는 것 같습니다. 왜 링크에 구체적으로 있어야합니까? e.returnValue는 전파가 발생하지 않는 동안 버블 링이 발생하지 않도록합니까? – crtjer
@crtjer : 질문에 관련 코드를 포함하지 않았으므로 몇 가지 가정을해야합니다. 나는 핸들러가 ''요소에 있다고 가정했다. 다른 문제도 있으므로 답변을 업데이트했습니다. –
예 이것은 페이지의 모든 앵커 요소에 있습니다. 내가 지금 실행하고있는 문제는 이것을 루프에 추가하는 것입니다. 나는 모든 요소 바이트를 얻고 청취자를 추가하려고합니다. 익명의 함수를 사용해야한다는 것을 알았지 만 나중에 제거하면 문제가 발생합니다. – crtjer