欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談JavaScript的事件

 更新時(shí)間:2015年02月27日 11:07:29   投稿:hebedich  
事件是可以被 JavaScript 偵測(cè)到的行為。網(wǎng)頁中的每個(gè)元素都可以產(chǎn)生某些可以觸發(fā) JavaScript 函數(shù)的事件。比方說,我們可以在用戶點(diǎn)擊某按鈕時(shí)產(chǎn)生一個(gè) onClick 事件來觸發(fā)某個(gè)函數(shù)。事件在 HTML 頁面中定義。

1、事件流

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

2、事件冒泡(event bubbling)

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

復(fù)制代碼 代碼如下:

<html>
    <head>
        <title>事件冒泡</title>
    </head>
    <body>
        <div id="myDiv">點(diǎn)擊我</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

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

3、停止事件冒泡和取消默認(rèn)事件

 a. 獲取事件對(duì)象

復(fù)制代碼 代碼如下:

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

 b 功能:停止事件冒泡 

復(fù)制代碼 代碼如下:

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

 c. 阻止瀏覽器的默認(rèn)行為

復(fù)制代碼 代碼如下:

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

相關(guān)文章

最新評(píng)論