成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? 詳解jQuery向動態生成的內容添加事件響應jQuery live()方法
全站頭部文字 我要出現在這里
詳解jQuery向動態生成的內容添加事件響應jQuery live()方法 582 2024-03-22   

jQuery live()方法是給所有匹配的元素附加一個事件處理函數,即使這個元素是以后通過append,prepend,after等事件生成后的內容也依然有效。
這個方法可以看做是 .bind() 方法的一個變體。使用 .bind() 時,選擇器匹配的元素會附加一個事件處理函數,而以后再添加的元素則不會有。為此需要再使用一次 .bind() 才行。比如說:

<body> 
<div class="clickme">Click here</div> 
</body> 

可以給這個元素綁定一個簡單的click事件:

$('.clickme').bind('click', function() { alert(www.gimoo.net); });

當點擊了元素,就會彈出一個警告框。然后,想象一下這之后有另一個元素添加進來了。
$('body').append('<div class="clickme">Another target</div>');

盡管這個新的元素也能夠匹配選擇器 ".clickme" ,但是由于這個元素是在調用 .bind() 之后添加的,所以點擊這個元素不會有任何效果。
但live() 就提供了對應這種情況的方法。如果我們是這樣綁定click事件的:
$('.clickme').live('click', function() { alert("www.gimoo.net"); });

這樣點擊新增的元素,它依然能夠觸發事件處理函數。
事件委托
live() 方法能對一個還沒有添加進DOM的元素有效,是由于使用了事件委托:綁定在祖先元素上的事件處理函數可以對在后代上觸發的事件作出回應。傳遞給 live() 的事件處理函數不會綁定在元素上,而是把他作為一個特殊的事件處理函數,綁定在 DOM 樹的根節點上。
在我們的例子中,當點擊新的元素后,會依次發生下列步驟:
1、生成一個click事件傳遞給 <div> 來處理。
2、由于沒有事件處理函數直接綁定在 <div> 上,所以事件冒泡到DOM樹上。
3、事件不斷冒泡一直到DOM樹的根節點,默認情況下上面綁定了這個特殊的事件處理函數。
4、執行由 .live() 綁定的特殊的 click 事件處理函數。
5、這個事件處理函數首先檢測事件對象的 target 來確定是不是需要繼續。
6、這個測試是通過檢測 $(event.target).closest('.clickme') 能否找到匹配的元素來實現的。
7、如果找到了匹配的元素,那么調用原始的事件處理函數。
8、由于只有在事件發生時才會在上面的第五步里做測試,因此在任何時候添加的元素都能夠響應這個事件。
以上就是對jQuery向動態生成的內容添加事件響應jQuery live()方法的詳細介紹,希望對大家的學習有所幫助。



主站蜘蛛池模板: 黄视频免费看网站| 三级大片在线观看| 林一个人简介资料| 双男主动漫 推荐| 滝沢乃南| 秦时明月动画片| 赵煊| 洪金宝电影大全| 奇奇颗颗说恐龙| 上海东方卫视节目表| 我们的母亲叫中国读后感| 黑衣人| 抖音下截| 李采潭全部系列未删减| 欲情电影在线观看| 相识电影| 2024微信头像图片新款| 火花 电影| 荒岛大逃亡电影在线观看| 有完没完电影| 人总要有点爱好,生活才能继续 | 格子论文| 吴谨言星座| 新版731部队电影免费| 插树岭演员表| 孽子 电影| 周岁封酒| 延边卫视节目表| 速度与激情:特别行动 电影| 爱人的眼睛是第八大洋什么意思? 营业执照注销打什么电话咨询 | 七令诡事录 电影| 七下语文第一单元作文| 为奴12年| 《西湖的绿》宗璞| 柚子猫卡夫卡的心理暗示在线观看| 天堂av| 陈冠希的艳照门| 高粱红了 电视剧| 美女不穿衣| 素人片| 解决问题五上数学|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103