国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

淺談JavaScript的事件

2019-11-20 13:05:37
字體:
來源:轉載
供稿:網友

1、事件流

    事件流描述的是從頁面中接收事件的順序。但是IE提出的是冒泡流,而Netscape Communicator提出的是捕獲流。
JavaScript事件流

2、事件冒泡(event bubbling)

    事件開始由最具體的元素(嵌套層次最深的那個節點)接收,然后逐級向上傳播為較不為具體的節點(文檔)。如下:

復制代碼 代碼如下:

<html>
    <head>
        <title>事件冒泡</title>
    </head>
    <body>
        <div id="myDiv">點擊我</div>
    </body>
</html>
window.onload = function(){
    var obj = document.getElementById("test");
    obj.onclick = function(){
        alert(this.tagName);
    };
    document.body.onclick = function(){
        alert(this.tagName);
    };
    document.documentElement.onclick = function(){
        alert(this.tagName);
    };
    document.onclick = function(){
        alert("document");
    };
    window.onclick = function(){
        alert("window");
    }
};

事件傳播順序:div――>body――>html――>document

注意:
    現代所有瀏覽器都支持冒泡事件,但實現還有一些差別。IE5.5及更早版本中的事件冒泡會直接從body跳到document(不執行html)。Firefox、Chrome和Safari則將事件一直冒泡到window對象。

3、停止事件冒泡和取消默認事件

 a. 獲取事件對象

復制代碼 代碼如下:

function getEvent(event) {
// window.event IE
// event 非IE
return event || window.event;
}

 b 功能:停止事件冒泡 

復制代碼 代碼如下:

function stopBubble(e) {
 // 如果提供了事件對象,則這是一個非IE瀏覽器
 if ( e && e.stopPropagation ) {
 // 因此它支持W3C的stopPropagation()方法
 e.stopPropagation();
} else {
 // 否則,我們需要使用IE的方式來取消事件冒泡
window.event.cancelBubble = true;
}
}

 c. 阻止瀏覽器的默認行為

復制代碼 代碼如下:

function stopDefault( e ) {
     // 阻止默認瀏覽器動作(W3C)
     if ( e && e.preventDefault ) {
         e.preventDefault();
     } else {
        // IE中阻止函數器默認動作的方式
        window.event.returnValue = false;
    }
    return false;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 苏尼特右旗| 四会市| 烟台市| 郎溪县| 崇州市| 凤庆县| 德安县| 屯昌县| 土默特左旗| 琼中| 许昌县| 乌鲁木齐县| 炉霍县| 定兴县| 太仆寺旗| 平泉县| 安宁市| 万安县| 阜新市| 青海省| 济南市| 郯城县| 彭泽县| 株洲县| 乌什县| 颍上县| 汨罗市| 夏河县| 乌拉特前旗| 桂东县| 沈丘县| 寿宁县| 莱州市| 阿拉善左旗| 永顺县| 城市| 织金县| 肃宁县| 青州市| 宜章县| 辉县市|