先說一下“取消(cancel)”和“停止(stop)”的區別:說白了,停止就是當事件發生後,阻止它自動冒泡到父容器內;而取消則是當冒泡發生到父容器之後停止,也就是不在當前元素中回應。天哪,這東西說起來話長了,代碼說話:
function stopEvent(e) {
if (!e) e = window.event;
if (e.stopPropagation) {
e.stopPropagation();
} else {
e.cancelBubble = true;
}
}
var link = document.getElementById("link");
link.onclick = stopEvent;
以上這一段是阻止父容器事件的
function cancelEvent(e) {
if (!e) e = window.event;
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
}
var link = document.getElementById("link");
link.onclick = function(e) {
cancelEvent(e);
stopEvent(e);
}
以上這一段是阻止子元素事件的
例子位址在這裡:demo
沒有留言:
張貼留言