小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

捕獲和冒泡

 yliu277 2016-01-03

把事件捕獲和冒泡的過程統(tǒng)稱為事件的傳播

事件的傳播是可以阻止的:

  • 在W3c中,使用stopPropagation()方法
  • 在IE下設(shè)置cancelBubble = true;
在捕獲的過程中stopPropagation();后,后面的冒泡過程也不會(huì)發(fā)生了~  在IE中則使用cancelBubble(IE中只有冒泡,沒有捕獲)
3.阻止事件的默認(rèn)行為,例如click <a>后的跳轉(zhuǎn)~
  • 在W3c中,使用preventDefault()方法;
  • 在IE下設(shè)置window.event.returnValue = false;
不是所有的事件都能冒泡,例如:blur、focus、load、unload,(這個(gè)是從別人的文章里摘過來的,我沒測(cè)試)

JavaScript所有事件的兩個(gè)階段:捕獲和冒泡
一下是一段簡(jiǎn)單的HTML代碼

<body>
     <ul>
            <li>
              click here
           </li>
     </ul>
</body>

如果我們點(diǎn)擊了Li,則先回響應(yīng)body的捕獲事件,接下來就是ul li ,然后進(jìn)入冒泡時(shí)間,順序相反。
如果我們分別設(shè)置了響應(yīng)函數(shù),則會(huì)分別響應(yīng)

我們可以阻止冒泡

function(e)
{
   
if (e && e.stopPropagation)
        // 支持W3C的stopPropation()方法
        e.stopPropagation
() else
        // 否則,我們得使IE的方式來取消事件冒泡
        window.event.cancelBubble = true;

}


事實(shí)上,捕獲階段是一個(gè)和冒泡階段完全相反的過程,即事件由祖先元素向子元素傳播,和一個(gè)石子兒從水面向水底下沉一樣,要說明的是在IE,opera瀏覽器中,是不存在這個(gè)階段的。從各瀏覽器提供的注冊(cè)事件監(jiān)聽的方法中可見一斑,例如適用于ie,opera的attachEvent,有兩個(gè)參數(shù),attachEvent(”on” type,fn),而適用于所謂標(biāo)準(zhǔn)瀏覽器的addEventListener則有三個(gè)參數(shù),addEventListener(type,fn,boolean),前面兩個(gè)參數(shù)不用解釋,第三個(gè)參數(shù)boolean,就是決定注冊(cè)事件發(fā)生在捕獲階段還是冒泡階段,具體參考如下:

true : 捕獲階段

false : 冒泡階段



    對(duì)“捕獲”和“冒泡”這兩個(gè)概念,我想我們對(duì)冒泡更熟悉一些,因?yàn)樵谖覀兪褂玫乃袨g覽器中,都支持事件冒泡,即事件由子元素向祖先元素傳播的,就像氣泡從水底向水面上浮一樣。而在像firefox,chrome,safari這類所謂的標(biāo)準(zhǔn)瀏覽器中,事件傳播還有個(gè)階段,那就是捕獲階段,這個(gè)很少有用武之地,所以被人疏忽遺忘也在所難免了,不常用不代表它不存在,本著科學(xué)嚴(yán)謹(jǐn)?shù)膽B(tài)度,我們有必要去看一下它的廬山真面目。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多