【转】停止事件冒泡与阻止浏览器的默认行为

1.停止事件冒泡

JavaScript代码

function getEvent() {
    if (window.event) { return window.event; }
    func = getEvent.caller;
    while (func != null) {
        var arg0 = func.arguments[0];
        if (arg0) {
            if ((arg0.constructor == Event || arg0.constructor == MouseEvent
                 || arg0.constructor == KeyboardEvent)
                 || (typeof (arg0) == "object" && arg0.preventDefault
                 && arg0.stopPropagation)) {
                return arg0;
            }
        }
        func = func.caller;
    }
    return null;
}
//阻止冒泡
function StopPropagation() {
    var e = getEvent();
    if (window.event) {
        //e.returnValue=false;//阻止自身行为
        e.cancelBubble = true; //阻止冒泡
    } else if (e.preventDefault) {
        //e.preventDefault();//阻止自身行为
        e.stopPropagation(); //阻止冒泡
    }
} 

 

2.阻止浏览器的默认行为

JavaScript代码

//如果提供了事件对象,则这是一个非IE浏览器 
if ( e && e.preventDefault ) 
  //阻止默认浏览器动作(W3C) 
  e.preventDefault(); 
else
  //IE中阻止函数器默认动作的方式 
  window.event.returnValue = false; 
return false;

转自:http://blog.csdn.net/a497785609/article/details/7994829; http://www.webjx.com/javascript/jsajax-7339.html

 

posted @ 2013-05-06 09:45  伯箫  阅读(211)  评论(0)    收藏  举报