亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

#javascript# DOM2

BLUE / 2479人閱讀

摘要:當(dāng)元素的某一個(gè)行為被觸發(fā),瀏覽器會(huì)把當(dāng)前存放在事件池中的所有方法,依次按照存放的先后順序執(zhí)行。瀏覽器會(huì)把一些常用的事件掛載到元素對(duì)象的私有屬性上。

DOM2事件綁定的原理
1.DOM2事件綁定使用的addEventListener/attachEvent都是在EventTarget這個(gè)內(nèi)置類的原型上定義的,我們使用的時(shí)候,會(huì)通過(guò)原型鏈找個(gè)這個(gè)方法,然后執(zhí)行綁定的事件。
2.瀏覽器會(huì)給當(dāng)前元素的某一個(gè)事件行為開(kāi)辟一個(gè)事件池(事件隊(duì)列),準(zhǔn)確來(lái)說(shuō),瀏覽器有一個(gè)統(tǒng)一的事件池,我們給每個(gè)元素綁定的某個(gè)方法都會(huì)放在這個(gè)事件池中,然后通過(guò)相關(guān)的標(biāo)識(shí)來(lái)進(jìn)行區(qū)分。當(dāng)我們通過(guò)addEventListener/attachEvent做事件監(jiān)聽(tīng)的時(shí)候,會(huì)把綁定的方法存放在事件池中。
3.當(dāng)元素的某一個(gè)行為被觸發(fā),瀏覽器會(huì)把當(dāng)前存放在事件池中的所有方法,依次按照存放的先后順序執(zhí)行。

DOM2特點(diǎn)

所有DOM0支持的事件行為DOM2都可以使用,而且DOM2還支持一些DOM0沒(méi)有的事件行為:DOMContentLoaded

//DOM0下沒(méi)有這個(gè)屬性:
document.body.DOMContentLoaded === undefined

//DOM2標(biāo)準(zhǔn)瀏覽器下:
document.body.addEventListener("DOMContentLoaded",function(){
    //標(biāo)準(zhǔn)瀏覽器中兼容這個(gè)事件,當(dāng)瀏覽器中的DOM結(jié)構(gòu)加載完成,就會(huì)觸發(fā)這個(gè)事件(也會(huì)把綁定的方法執(zhí)行)
},false)

//DOM2下IE6~8下也不支持這個(gè)事件
document.body.attachEvent("onDOMContentLoaded",function(){
})

2.DOM2中可以給當(dāng)前元素的某一個(gè)事件行為綁定多個(gè)不同的方法(因?yàn)榻壎ǖ乃蟹椒ǘ即娣旁谑录刂校?/p>

function fn1(){
console.log("1");
}

function fn2(){
console.log("2");
}

function fn3(){
console.log("3");
}

document.body.addEventListener("click", fn1, false);
document.body.addEventListener("click", fn3, false);
document.body.addEventListener("click", fn2, false);

//fn2事件移除。移除的時(shí)候要求   事件類型、綁定的方法、傳播階段三個(gè)完全一致才可以移除掉

document.body.removeEventListener("click", fn2, false)

DOM0和DOM2執(zhí)行順序的問(wèn)題

function fn(){
console.log(1);
}

document.addEventListerner("click", fn, false);
document.addEventListerner("click", fn, false);//第二次存儲(chǔ)不到事件池中,因?yàn)槭录刂幸呀?jīng)存在fn。  到這里只會(huì)輸出 1
document.onclick = fn;//會(huì)輸出  1  1
document.onclick = function() {
    console.log(2);
}
document.addEventListerner("click", function(){
console.log(3);
}, false);
//輸出結(jié)果 1 2 3
// 1. DOM0和DOM2綁定的方法是毫無(wú)關(guān)系的(因?yàn)樗麄兪莾商撞煌奶幚頇C(jī)制),即使綁定的方法相同,也是執(zhí)行2次
//2. 誰(shuí)先綁定,就先執(zhí)行誰(shuí)。

DOM0:瀏覽器會(huì)把一些常用的事件掛載到元素對(duì)象的私有屬性上。讓我們可以實(shí)現(xiàn)DOM0事件綁定
DOM2:凡是瀏覽器給元素天生設(shè)置的事件在DOM2中都可以用

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/109633.html

相關(guān)文章

  • JavaScript DOM2和DOM3——“DOM的變化”的注意要點(diǎn)

    摘要:和級(jí)分為許多模塊,分別描述了的某個(gè)非常具體的子集。這些模塊主要有核心視圖事件樣式遍歷和范圍以及。另外還有方法和方法框架的變化框架和內(nèi)嵌框架分別用和表示,它們?cè)诩?jí)中都有一個(gè)新屬性這個(gè)屬性包含一個(gè)指針,指向表示框架內(nèi)容的文檔對(duì)象。 DOM2和DOM3級(jí)分為許多模塊,分別描述了DOM的某個(gè)非常具體的子集。這些模塊主要有核心(Core)、視圖(Views)、事件(Events)、樣式(Styl...

    騫諱護(hù) 評(píng)論0 收藏0
  • JavaScript 簡(jiǎn)介

    摘要:簡(jiǎn)介原文鏈接簡(jiǎn)稱是一種輕量級(jí),解釋型的編程語(yǔ)言,其函數(shù)是一等公民。標(biāo)準(zhǔn)的目標(biāo)是讓任何一種程序設(shè)計(jì)語(yǔ)言能操控使用任何一種標(biāo)記語(yǔ)言編寫(xiě)出的任何一份文檔。核心規(guī)定了如何映射基于的文檔結(jié)構(gòu),以便簡(jiǎn)化對(duì)文檔的任意部分的訪問(wèn)和操作。 JavaScript 簡(jiǎn)介 原文鏈接 JavaScript ( 簡(jiǎn)稱:JS ) 是一種 輕量級(jí),解釋型 的編程語(yǔ)言,其函數(shù)是一等公民。眾所周知,它是用于網(wǎng)頁(yè)開(kāi)發(fā)的腳...

    URLOS 評(píng)論0 收藏0
  • # Javascript # DOM2兼容處理

    摘要:兼容問(wèn)題,除了語(yǔ)法上的區(qū)別,在處理的機(jī)制上也有下列問(wèn)題順序問(wèn)題,重復(fù)問(wèn)題,對(duì)象問(wèn)題。沒(méi)有進(jìn)行去重處理。在標(biāo)準(zhǔn)瀏覽器中在低版本中究其根本,都是低版本瀏覽器對(duì)于它內(nèi)置事件池處理機(jī)制的不完善導(dǎo)致的。 DOM2兼容問(wèn)題,除了語(yǔ)法上的區(qū)別,在處理的機(jī)制上也有下列問(wèn)題:順序問(wèn)題,重復(fù)問(wèn)題,this對(duì)象問(wèn)題。 語(yǔ)法問(wèn)題 [標(biāo)準(zhǔn)]curEle.addEventListener(type, fn, fa...

    fnngj 評(píng)論0 收藏0
  • 讀書(shū)筆記(05) - 事件 - JavaScript高級(jí)程序設(shè)計(jì)

    摘要:而事件分為個(gè)級(jí)別級(jí)事件處理程序,級(jí)事件處理程序和級(jí)事件處理程序。級(jí)中沒(méi)有規(guī)范事件的相關(guān)內(nèi)容,所以沒(méi)有級(jí)事件處理。 showImg(https://segmentfault.com/img/bVburYR?w=499&h=400); HTML依托于JavaScript來(lái)實(shí)現(xiàn)用戶與WEB網(wǎng)頁(yè)之間的動(dòng)態(tài)交互,接收用戶操作并做出相應(yīng)的反饋,而事件在此間則充當(dāng)橋梁的重要角色。 日常開(kāi)發(fā)中,經(jīng)常會(huì)...

    tinylcy 評(píng)論0 收藏0
  • JavaScript高級(jí)程序設(shè)計(jì)》學(xué)習(xí)筆記:JavaScript中的事件流和事件處理程序

    摘要:可以使用偵聽(tīng)器或處理程序來(lái)預(yù)訂事件,以便事件發(fā)生時(shí)執(zhí)行相應(yīng)的代碼。響應(yīng)某個(gè)事件的函數(shù)稱為事件處理程序或事件偵聽(tīng)器??梢詣h除通過(guò)級(jí)方法指定的事件處理程序。 JavaScript和HTML之間的交互是通過(guò)事件實(shí)現(xiàn)的。 事件:文檔或?yàn)g覽器窗口中發(fā)生的一些特定的交互瞬間。 可以使用偵聽(tīng)器(或處理程序來(lái)預(yù)訂事件),以便事件發(fā)生時(shí)執(zhí)行相應(yīng)的代碼。 1. 事件流 事件流:從頁(yè)面中接收事件的順序。 ...

    Rocko 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<