對(duì)這種問(wèn)題的處理方式可以稱之為事件流即事件的傳播機(jī)制。IE下的解決方案稱之為冒泡型事件,而FF下稱之為捕獲型事件。為我們提供了三種事件處理函數(shù)的分配方式,第一種就像上面的程序一樣,是在HTML代碼中分配事件處理函數(shù)。如果想為同一個(gè)事件分配兩個(gè)以上的處理函數(shù),需要采用第三種事件處理函數(shù)分配方式。
javascript事件流是什么?有哪些事件流?
< p >處理這類問(wèn)題的方式可以稱為事件流,即事件的傳播機(jī)制。事件流IE和FF有不同的解釋。IE下的解決方案叫冒泡事件,F(xiàn)F叫捕獲事件。
顧名思義,冒泡事件是自下而上的觸發(fā)機(jī)制,而捕獲事件是自上而下的觸發(fā)機(jī)制?!陡呒?jí)編程》這本書(shū)提到,DOM事件流同時(shí)支持兩種事件觸發(fā)機(jī)制,但是先發(fā)生捕獲事件。注意,一個(gè)事件的目標(biāo)(即DOM樹(shù)中最深的節(jié)點(diǎn))是最準(zhǔn)確的元素,實(shí)際上它會(huì)連續(xù)兩次接收到該事件,一次在捕獲的過(guò)程中,一次在冒泡的過(guò)程中。是這樣嗎?< br >觀察以下程序事件流(ele){(ele)
}!按以下順序點(diǎn)擊IE click me:div-> body-> HTML,點(diǎn)擊頁(yè)面其他部分,body-> html ff,按以下順序點(diǎn)擊me:div-> html-> body,點(diǎn)擊頁(yè)面其他部分,HTML-> body為我們提供了三種分配事件處理程序的方式。第一個(gè)和上面的程序一樣,是在HTML代碼中分配事件處理程序。第二種方法是在。在此方法中,必須首先獲取事件處理函數(shù)所分配到的元素的引用。請(qǐng)參考以下程序1。= () {2 varoDiv =。(" ")
< p > 3 oDiv。= () {4 alert (odiv。) < p > 5} 6}如前所述,這個(gè)方法必須保證在分配事件處理函數(shù)時(shí)已經(jīng)獲得了對(duì)這個(gè)元素的引用,所以這個(gè)程序把odiv的事件放在了 < p >另外需要注意的是,在使用事件處理函數(shù)的這種分配方法時(shí),一個(gè)特定的事件只能分配一個(gè)函數(shù),并且事件函數(shù)的簽名必須是小寫(xiě)的,否則前面分配的函數(shù)會(huì)被后面的函數(shù)覆蓋。如果要為同一個(gè)事件分配兩個(gè)以上的處理函數(shù),需要使用分配處理函數(shù)的第三種方法。在IE中,我們使用obj。()方法將函數(shù)分配給元素,obj。()方法來(lái)分隔元素的事件處理函數(shù)。以DOM為例,我們用()方法分配函數(shù),用()方法分離函數(shù)。請(qǐng)參見(jiàn)代碼1。=(){2varoDiv=。(" ")
3varfunc1=(){4alert(oDiv。)
< p > 5 } 6 var func 2 =(){ 7 alert(" also "+oDiv。)8}9//IE10if(oDiv。){ 11oDiv。("",func 1)
< p > 12 div。("",func2)13//oDiv。("",func1)
14}elseif(oDiv。){15//16oDiv。(" click ",func1,true)
17oDiv。(" click ",func2,True)
18//oDiv。(“click”,func1,true)
19}20 21}我們來(lái)解釋一下IE下的這個(gè)事件處理函數(shù)和IE下的有什么區(qū)別。1.在函數(shù)的第一個(gè)參數(shù)中,IE必須加上前綴“on”和FF。2。下()函數(shù)的第三個(gè)參數(shù)表示True表示事件處理函數(shù)是在捕獲階段添加的,false表示事件處理函數(shù)是在冒泡階段添加的。但是,由于不支持冒泡事件流,所以在這里將其設(shè)置為true或Flase似乎沒(méi)有什么區(qū)別。
但需要注意的是,如果()中的第三個(gè)參數(shù)設(shè)置為true,那么()方法中的第三個(gè)參數(shù)也必須設(shè)置為相同的值,否則該方法將失敗。3.在運(yùn)行階段,IE首先執(zhí)行最后一個(gè)添加的事件處理程序,然后是倒數(shù)第二個(gè),以此類推,但接下來(lái),與IE相反,他會(huì)按照添加事件處理程序的順序執(zhí)行事件處理程序。
javascript事件是什么意思
使我們能夠創(chuàng)建動(dòng)態(tài)頁(yè)面。事件是可以檢測(cè)到的行為。
網(wǎng)頁(yè)中的每個(gè)元素都可以生成觸發(fā)功能的特定事件。例如,我們可以生成一個(gè)事件,在用戶點(diǎn)擊按鈕時(shí)觸發(fā)一個(gè)功能。事件是在HTML頁(yè)面中定義的。例如,鼠標(biāo)點(diǎn)擊頁(yè)面或圖像被加載的事件。鼠標(biāo)懸停在頁(yè)面上的一個(gè)熱點(diǎn)上,并選擇表單中的輸入框以確認(rèn)表單的鍵盤(pán)按鍵。注意,事件通常與函數(shù)一起使用,當(dāng)事件發(fā)生時(shí),函數(shù)將被執(zhí)行。
JS中的event對(duì)象包含哪些東西event,實(shí)例詳解
< p > js1的對(duì)象事件屬性和方法。類型事件的類型,如click 2 in:/event source是事件發(fā)生的元素3。& nbsp聲明按下了哪個(gè)鼠標(biāo)按鈕。整數(shù),1代表左鍵,2代表右鍵,4代表中鍵。如果按下多個(gè)鍵,酒就會(huì)把這些值加起來(lái),所以3代表同時(shí)按下左右鍵
(中間0代表左鍵,1代表中鍵,2代表右鍵)
4,& nbsp/當(dāng)事件發(fā)生時(shí),posi