<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        談談我對JavaScriptDOM事件的理解_javascript技巧

        來源:懂視網 責編:小采 時間:2020-11-27 21:47:29
        文檔

        談談我對JavaScriptDOM事件的理解_javascript技巧

        談談我對JavaScriptDOM事件的理解_javascript技巧:什么是事件? 事件(Event)是JavaScript應用跳動的心臟 ,也是把所有東西粘在一起的膠水。當我們與瀏覽器中 Web 頁面進行某些類型的交互時,事件就發生了。事件可能是用戶在某些內容上的點擊、鼠標經過某個特定元素或按下鍵盤上的某些按鍵。事件還可能是 W
        推薦度:
        導讀談談我對JavaScriptDOM事件的理解_javascript技巧:什么是事件? 事件(Event)是JavaScript應用跳動的心臟 ,也是把所有東西粘在一起的膠水。當我們與瀏覽器中 Web 頁面進行某些類型的交互時,事件就發生了。事件可能是用戶在某些內容上的點擊、鼠標經過某個特定元素或按下鍵盤上的某些按鍵。事件還可能是 W
        什么是事件?

        事件(Event)是JavaScript應用跳動的心臟 ,也是把所有東西粘在一起的膠水。當我們與瀏覽器中 Web 頁面進行某些類型的交互時,事件就發生了。事件可能是用戶在某些內容上的點擊、鼠標經過某個特定元素或按下鍵盤上的某些按鍵。事件還可能是 Web 瀏覽器中發生的事情,比如說某個 Web 頁面加載完成,或者是用戶滾動窗口或改變窗口大小。

        通過使用 JavaScript ,你可以監聽特定事件的發生,并規定讓某些事件發生以對這些事件做出響應。

        DOM與事件是JavaScript最核心的組成部分之一,他們賦予了頁面無限的想象空間,你根本無法離開他們,否則js將寸步難行。在我們平時的開發過程中,jQuery的出現使得我們得心應手,然而你必須知道,jQuery之所以把事情簡單化,是得益于JavaScript本身提供的強大的API,你應該去熟悉它們。

        首先,此文不討論繁瑣細節,但是考慮到讀者的心靈感受,本著以積極向上的心態,在此還是會列舉示例說明。

        ​標題為理解DOM事件,那么在此拿一個簡單的點擊事件為例,希望大家看到這個例子后能觸類旁通。
        最初我們給頁面實現點擊,就像下面這樣的簡單操作。

        先定義一個塊如微宇宙,之后在輸出不相同,那么如何讓IE和firefox下彈出的內容都一樣。

        銜接上一段內容,下面給點擊函數的內部設置一個參數,參數名為e,然后在IE和firefox瀏覽器下面同時觸發點擊事件,我們看到firefox下面顯示e為鼠標事件[object MouseEvent],IE8下報錯,彈出錯誤信息未定義undefined。此時你要問我錯在哪里,咱們回到剛剛的那句話‘此處留個懸念'進行分析,IE8以下的瀏覽器的事件是不是發生在全局作用域中,從視圖5-02所示看到有一個global全局對象,我們可以對global展開搜索,global的繼承的方法有一個event事件,找到了IE8的專有事件方法window繼承event,于是我們對這個參數e設置為window.event進行一個調試,目前我們在IE8下面看到返回了一個事件[object event],如圖5-04所示。

        5-04


        想必你一定發現了IE8和firefox瀏覽器下對話框的事件返回值各不不同,IE8的對話框[object MouseEvent],firefox的對話框[object event],那我們怎么讓IE8和firefox下的返回值都相同呢?

        看到這里,你的心里是不是有點小沮喪,挖坑挖了這么久了,怎么還沒有看到水流出來,別急,正題才剛剛開始,咱們不閑聊,繼續圍繞正題展開分析,通過剛剛的返回值,我們繼續使用斷點的方法尋找能夠實現IE和firefox的返回值的共同點。

        經由以上分析,我們查找發現firefox下的event有我們需要的方法名可以被調用,當然,我們查找發現IE8下面的srcElement也有我們所需的方法名可以被調用,于是乎,呵呵!看到這里你的內心是不是有點小激動,一步步排除,最后發現也沒有什么難的。回到正題,現在我們聲明一個變量var e_child = e.srcElement || e.target; 然后我們在IE8和firefox瀏覽器上看到對話框信息都為[object HTMLDivElement],如圖5-05所示。

        5-05

        現在我們解決了不同瀏覽器的返回值不同的問題,也就是說解決了兼容的問題,這只是冰上一角。

        下面我們要解決實現窗口的容器觸發事件,主要是基于上面的結構進行的一次分析。

        當你有了上面基礎的話,下面的內容相對于上面而言比較簡單一點。

        還是以上一個頁面的塊為例,現在我繼續往塊微宇宙增加一個子容器,這個子容器為行內元素koringz,取id名為coz,然后給這個元素也加一個點擊事件代碼同上函數,為了能區別開文本內容之間的差異。

        當我分別在IE8和firefox下點擊容器的內容,出現了怪異的情況,在firefox瀏覽器的窗口上點擊時,點擊中文文本內容彈出來對話框‘微宇宙',我再點擊koringz時,發現彈出了二次對話框,彈出內容都為'koringz',那是因為我點擊子容器的時候觸發了上一層的點擊行為,如何解決點擊koringz彈出二次對話框的問題,了解一點js的程序員都知道這是冒泡事件。

        那么在firefox能夠清除冒泡事件的是event下的stopPropagation,于是我們給第二次點擊事件函數代碼塊之后面加一行代碼e.stopPropagation();之后再點擊koringz發現彈出一次'koringz'。如圖5-06所示

        5-06

        接下來在IE8下面測試一下,發現在IE8瀏覽器點擊也彈出二次,解決IE8的停止冒泡事件為cacelBubble,且我們只需要給cacelBubble設置為true即可。

        因為IE8下global包含的event屬性cacelBubble不是一個方法,而是一個輸出布爾值的對象,所以這個和firefox有所不同,只是firefox把此事件封裝成方法而已。好了,現在我們給第二次點擊的事件代碼塊之后再加一行代碼e.cancelBubble = true;然后在IE8瀏覽器下測試,之后再點擊koringz發現也彈出一次。如圖5-07所示

        5-07

        注意上面的停止冒泡的事件的代碼可以根據瀏覽器的不同分開來寫,如何分開寫,我們查看IE8瀏覽器下面的document發現存在對象all,而在firefox卻沒有沒有這個all屬性,這也就是說document.all是IE8版本下面獨有的一個屬性。通過它我們可以區分瀏覽器的冒泡事件。

        到目前為止,我們解決了窗口的冒泡事件,接下來,我們要解決一個事件因被多人定義而覆蓋原函數的問題。也可能是說某公司之前的工作人員添加了此事件,后來新員工接手項目后添加修改此事件而覆蓋了原事件的執行所產生的問題。也就是說給當前id多次添加此類事件都不會覆蓋此事件的原函數執行。

        在firefox下的window包含有addEventListener(type, listener, useCapture)的方法,隨后我們在

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        談談我對JavaScriptDOM事件的理解_javascript技巧

        談談我對JavaScriptDOM事件的理解_javascript技巧:什么是事件? 事件(Event)是JavaScript應用跳動的心臟 ,也是把所有東西粘在一起的膠水。當我們與瀏覽器中 Web 頁面進行某些類型的交互時,事件就發生了。事件可能是用戶在某些內容上的點擊、鼠標經過某個特定元素或按下鍵盤上的某些按鍵。事件還可能是 W
        推薦度:
        標簽: 事件 js 談談
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 精品熟女少妇AV免费观看| 永久看日本大片免费35分钟| 国产禁女女网站免费看| 亚洲六月丁香六月婷婷蜜芽| 国产人成免费视频网站| 亚洲国产美女福利直播秀一区二区| 香港a毛片免费观看| 78成人精品电影在线播放日韩精品电影一区亚洲 | 精品国产亚洲一区二区三区| 亚洲资源在线观看| 久久国产乱子免费精品| 亚洲色欲www综合网| 亚州免费一级毛片| 中文字幕亚洲激情| 日韩精品无码免费专区午夜不卡| 亚洲人成色777777在线观看| 99热在线免费观看| 亚洲一区二区三区在线观看蜜桃 | 国产自产拍精品视频免费看| 免费很黄无遮挡的视频毛片| 国产亚洲精品线观看动态图| 桃子视频在线观看高清免费视频| 亚洲国产精品专区| 日本二区免费一片黄2019| 人妻巨大乳hd免费看| 亚洲产国偷V产偷V自拍色戒| 真人做人试看60分钟免费视频| 亚洲heyzo专区无码综合| 毛茸茸bbw亚洲人| 51在线视频免费观看视频| 亚洲中文字幕无码av永久| 亚洲第一区在线观看| 免费h视频在线观看| 亚洲影院天堂中文av色| 亚洲日韩国产成网在线观看| 一级特黄aa毛片免费观看| 亚洲日韩精品A∨片无码加勒比| 真人做A免费观看| 一级毛片免费播放男男| 亚洲激情视频网站| 亚洲国产电影av在线网址|