|
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
當(dāng)某一天,我們知道JavaScript要跟HTML結(jié)構(gòu)實(shí)現(xiàn)分離后,就會(huì)改了一種寫法:
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
當(dāng)我們工作越來(lái)越久后,有時(shí)候我們需要對(duì)某個(gè)元素綁定多個(gè)相同的事件類型:
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
如果按照上面的寫法,我們只能輸出第二個(gè)函數(shù)。
這時(shí)候我們需要用到attachEvent方法:
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
在一段時(shí)間內(nèi),你并沒(méi)發(fā)現(xiàn)這段代碼有任何錯(cuò)誤。
某一天,一個(gè)名叫firefox的瀏覽器 闖入你的視野,當(dāng)我們把這段代碼放到firefox中執(zhí)行后,
發(fā)現(xiàn)并不能正常運(yùn)行。 問(wèn)題就這樣,越來(lái)越多,然而作為一名JS程序員,這些都是必須面對(duì)的。
為了解決這段代碼的平臺(tái)兼容性問(wèn)題,我翻翻手冊(cè),知道了firefox跟ie的區(qū)別:
firefox中注冊(cè)事件使用:addEventListener方法,同時(shí)為了兼容ie,我們必須用到if ... else...
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
此時(shí),代碼就可以在多個(gè)平臺(tái)上工作了。
但隨著水平的進(jìn)步,你不滿足每次都去判斷,你想把這個(gè)判斷封裝起來(lái),以后可以直接調(diào)用:
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
至此,作為一個(gè)程序員的工作就完了。
中間我們從一個(gè)最傳統(tǒng),最基本的寫法 , 然后實(shí)現(xiàn)Js和HTML的分離,然后又實(shí)現(xiàn)對(duì)同一個(gè)元素注冊(cè)多個(gè)事件,期間,我們發(fā)現(xiàn)注冊(cè)事件的兼容性問(wèn)題。最后我們對(duì)注冊(cè)事件的方法進(jìn)行封裝,方便以后使用。
好了,文章寫到這里。希望大家有收獲哦。。。
JavaScript技術(shù):Javascript 注冊(cè)事件淺析,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。