最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于動態(tài)生成dom綁定事件失效的原因及解決方法

 更新時間:2016年08月06日 10:09:42   投稿:jingxian  
下面小編就為大家?guī)硪黄P(guān)于動態(tài)生成dom綁定事件失效的原因及解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

之前做項(xiàng)目都是直接用jquery的bind綁定事件,不過當(dāng)時都不是動態(tài)生成dom元素,而是已經(jīng)頁面中原本存在的dom元素進(jìn)行事件綁定,最近在測試給動態(tài)生成的dom綁定事件的時候發(fā)現(xiàn)事件失效,于是就測試了一下:

1. 事件失效的原因:

(1)bind事件綁定只對dom中存在的元素有效,對于我們后來動態(tài)增加的元素是監(jiān)測不到,所以綁定不了

(2)同樣,當(dāng)你使用var aa = document.getElementsByTagName("動態(tài)生成的元素");來獲取動態(tài)生成的元素的時候也是獲取不到的,因?yàn)榫W(wǎng)頁只會執(zhí)行一次初始化綁定,之后動態(tài)生成的dom元素也是監(jiān)測不到的。

2. 解決辦法:

(1)在每一個動態(tài)生成的地方都再綁定多一次事件,比如這個博客里面的例子

(2)把bind改用live,因?yàn)閘ive是實(shí)時監(jiān)測的,對于新增的dom元素也是有效的(因?yàn)椴粩嗳ソ壎ā⑴袛?,所以可能會影響Web性能問題)

(3)把bind改用delegate,因?yàn)閐elegate是實(shí)時監(jiān)測的。

(4)在jquery1.7 起版本用on替代了bind()、live() 和 delegate() 方法。

3. 關(guān)于最近遇到的事件失效的原因:在原本的網(wǎng)頁中(代碼可見https://github.com/UFOwl/ife/tree/master/stage02/task16),我想要獲取table里面動態(tài)生成的刪除按鈕,幫刪除按鈕綁定刪除時間,可是刪除事件失效,因?yàn)閯h除按鈕是動態(tài)生成的,初始化事件綁定的時候,獲取到的table里面的button已經(jīng)是空的,所以綁定的一直都是空元素,所以點(diǎn)擊button按鈕的時候一直沒有反應(yīng)。

4. 最后的解決辦法:先獲取table,然后再綁定table的click事件(因?yàn)閠able是在原本已經(jīng)存在的dom元素),然后當(dāng)點(diǎn)擊事件觸發(fā)的時候再捕獲事件的target(比如點(diǎn)擊table里面的button,這個時候因?yàn)橐呀?jīng)動態(tài)生成button并append進(jìn)去table里面了,所以button是存在的,此時target指的是button),然后再進(jìn)行相應(yīng)的操作。

注意:在這里注意兩個問題:

(1)table里面的元素是已經(jīng)添加進(jìn)入table里面了的,所以點(diǎn)擊那個button的時候,e.target獲取到的就是button

(2)為什么已經(jīng)將button這些元素添加進(jìn)入table里面,可是還是沒能獲取到呢,因?yàn)槭莍nit()這個函數(shù)初始化的時候獲取table里面的button,可是此時還未進(jìn)行任何操作,所以獲取到的就是空,所以沒綁定任何元素。

上面需要注意的兩個問題要分清楚,這個是問題的關(guān)鍵。

5.關(guān)于bind:每次綁定事件之后事件會一直綁定著,除非用unbind解綁之后再重新綁定,要不然事件會一直存在,所以這就是為什么在做項(xiàng)目的時候,有時候ajax請求的結(jié)果會出現(xiàn)1,2,4,8這樣疊加,是因?yàn)槿绻昧薭ind,每次觸發(fā)事件都會綁定一次操作,所以觸發(fā)第一次的時候,ajax請求一次;第二次的時候,ajax請求1+1=2次;第三次就是1+2+1=4次;第四次就是1+2+4+1=8次,以此類推。所以如果利用bind綁定事件的話,要先unbind解綁元素原本有的事件再綁定事件,才不會導(dǎo)致ajax請求多次。

以上這篇關(guān)于動態(tài)生成dom綁定事件失效的原因及解決方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • jQuery 防止相同的事件快速重復(fù)觸發(fā)方法

    jQuery 防止相同的事件快速重復(fù)觸發(fā)方法

    下面小編就為大家分享一篇jQuery 防止相同的事件快速重復(fù)觸發(fā)方法。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • Jquery實(shí)現(xiàn)的table最后一行添加樣式的代碼

    Jquery實(shí)現(xiàn)的table最后一行添加樣式的代碼

    有時間需要將表格的最后一行加上樣式,方便閱讀等需要,需要的朋友可以參考下。
    2010-05-05
  • jQuery實(shí)現(xiàn)frame之間互通的方法

    jQuery實(shí)現(xiàn)frame之間互通的方法

    這篇文章主要介紹了jQuery實(shí)現(xiàn)frame之間互通的方法,結(jié)合實(shí)例形式分析了jQuery實(shí)現(xiàn)frame父子框架之間的調(diào)用操作實(shí)現(xiàn)方法,需要的朋友可以參考下
    2017-06-06
  • jquery 雙色表格實(shí)現(xiàn)代碼

    jquery 雙色表格實(shí)現(xiàn)代碼

    上次用javascript實(shí)現(xiàn)了上色表格,見<JS實(shí)現(xiàn)雙色表格>。但通過jQuery強(qiáng)大的選擇器可更加簡潔,優(yōu)雅的實(shí)現(xiàn)。
    2009-12-12
  • Jquery操作Select 簡單方便 一個js插件搞定

    Jquery操作Select 簡單方便 一個js插件搞定

    Jquery其實(shí)本身可以操作select表單,但是由于比較反鎖,沒有.net 控件那樣去操作方便,我在網(wǎng)上Google了一會,發(fā)現(xiàn)了一個不錯的專門操作select的插件,很好,使用過了,感覺蠻不錯的。
    2009-11-11
  • JQuery防止退格鍵網(wǎng)頁后退的實(shí)現(xiàn)代碼

    JQuery防止退格鍵網(wǎng)頁后退的實(shí)現(xiàn)代碼

    有時我們需要防止退格鍵的網(wǎng)頁后退,一般情況下最好不要這么用,因?yàn)閷X體驗(yàn)不好
    2012-03-03
  • 改善用戶體驗(yàn)的五款jQuery插件分享

    改善用戶體驗(yàn)的五款jQuery插件分享

    改善網(wǎng)頁的用戶體驗(yàn),可以從以下幾個方面入手:菜單欄,tab,登錄/注冊,搜索,以及404頁面。對于每一方面的優(yōu)化,Gevin分別向大家推薦一個自己私藏的jquery插件,希望對大家有幫助,也歡迎大家多多交流
    2011-05-05
  • JQuery事件冒泡和默認(rèn)行為代碼實(shí)例

    JQuery事件冒泡和默認(rèn)行為代碼實(shí)例

    這篇文章主要介紹了JQuery事件冒泡和默認(rèn)行為代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • jquery Validation表單驗(yàn)證使用詳解

    jquery Validation表單驗(yàn)證使用詳解

    功能強(qiáng)大的 jquery 表單驗(yàn)證插件,適用于日常的 E-mail、電話號碼、網(wǎng)址等驗(yàn)證及 Ajax 驗(yàn)證,除自身擁有豐富的驗(yàn)證規(guī)則外,還可以添加自定義的驗(yàn)證規(guī)則。兼容 IE 6+, Chrome, Firefox, Safari, Opera 10+
    2015-04-04
  • jQuery mobile轉(zhuǎn)換url地址及獲取url中目錄部分的方法

    jQuery mobile轉(zhuǎn)換url地址及獲取url中目錄部分的方法

    這篇文章主要介紹了jQuery mobile轉(zhuǎn)換url地址及獲取url中目錄部分的方法,轉(zhuǎn)換url地址本文中介紹的是將相對url轉(zhuǎn)化為絕對url,需要的朋友可以參考下
    2015-12-12

最新評論

杭锦旗| 云阳县| 息烽县| 文水县| 临安市| 芷江| 凤台县| 通河县| 北票市| 左权县| 宜城市| 巍山| 玛沁县| 塔城市| 河南省| 芒康县| 曲周县| 阜城县| 塘沽区| 萨迦县| 彭阳县| 红安县| 大埔区| 长治县| 长白| 阳山县| 山东省| 驻马店市| 松滋市| 民丰县| 民乐县| 大余县| 石屏县| 西平县| 元氏县| 永嘉县| 满城县| 崇礼县| 东乡| 鱼台县| 扶余县|