動(dòng)態(tài)生成的DOM不會觸發(fā)onclick事件的原因及解決方法
最近朋友在做一個(gè)項(xiàng)目的時(shí)候,遇到動(dòng)態(tài)加載微博內(nèi)容,然后點(diǎn)擊“展開評論”后獲取該微博的所有評論。這里使用了動(dòng)態(tài)加載的<span mid='123456789′ class='get_comment'>點(diǎn)擊加載評論</span>。
然后再寫
$(“.get_comment).click(function(){
//響應(yīng)事件邏輯
})
發(fā)現(xiàn)click事件并不會觸發(fā),使用控制臺偵聽也木有錯(cuò)誤。百思不得其解時(shí),
因?yàn)槲以谝郧白鏊押揖由坛堑倪\(yùn)費(fèi)管理時(shí),也曾遇到,因此將焦點(diǎn)落在動(dòng)態(tài)加載上。
記得當(dāng)時(shí)本人用的是行內(nèi)事件,在動(dòng)態(tài)加載時(shí)用的是行內(nèi)事件。如 var oBtn = '<a onclick="Freight.delete_curr_citys();" href="javascript:void(0);">刪除</a>'; 其實(shí)Freight為對象.delete_curr_citys為此對象的一個(gè)方法。
當(dāng)然也可以使用jquery的live()函數(shù),重寫響應(yīng)邏輯:
$(“.get_comment”).live(‘click', function() {
var mid = $(this).attr(“mid”);
alert(mid);
});
這時(shí)候,jquery可以響應(yīng)span 的click事件了。這里用到live函數(shù)委派事件,主要用于動(dòng)態(tài)生成的HTML的事件響應(yīng)。關(guān)于live()函數(shù)的作用,它最直觀的好處在于可以一直 “監(jiān)聽”客戶端瀏覽器操作,對于新增的DOM節(jié)點(diǎn)也會有效,而不需要重新綁定。也許是因?yàn)檫@個(gè)“監(jiān)聽”可能會不斷的去綁定、判斷,會造成web應(yīng)用性能問題,大家可以根據(jù)項(xiàng)目的復(fù)雜性選擇性使用。關(guān)于live函數(shù),這里有非常詳細(xì)的闡述:
定義和用法
live() 方法為被選元素附加一個(gè)或多個(gè)事件處理程序,并規(guī)定當(dāng)這些事件發(fā)生時(shí)運(yùn)行的函數(shù)。
通過 live() 方法附加的事件處理程序適用于匹配選擇器的當(dāng)前及未來的元素(比如由腳本創(chuàng)建的新元素)。
語法
$(selector).live(event,data,function)
參數(shù) 描述
event 必需。規(guī)定附加到元素的一個(gè)或多個(gè)事件。
由空格分隔多個(gè)事件。必須是有效的事件。
data 可選。規(guī)定傳遞到該函數(shù)的額外數(shù)據(jù)。
function 必需。規(guī)定當(dāng)事件發(fā)生時(shí)運(yùn)行的函數(shù)。
以上這篇?jiǎng)討B(tài)生成的DOM不會觸發(fā)onclick事件的原因及解決方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
jquery精度計(jì)算代碼 jquery指定精確小數(shù)位
這篇文章主要為大家詳細(xì)介紹了jquery精度計(jì)算代碼,jquery指定精確小數(shù)位,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02
談?wù)凧query ajax中success和complete有哪些不同點(diǎn)
jquery ajax中success和complete有哪些不同點(diǎn)呢?大家都了解嗎,接下來通過本篇文章給大家介紹jquery ajax中success和complete的不同點(diǎn),感興趣的朋友一起學(xué)習(xí)吧2015-11-11
利用jQuery實(shí)現(xiàn)滑動(dòng)開關(guān)按鈕效果(附demo源碼下載)
這篇文章主要介紹了利用jQuery實(shí)現(xiàn)滑動(dòng)開關(guān)按鈕效果,文中給出了詳細(xì)的介紹,并在文末給出了完整的demo源碼下載,有需要的朋友可以參考簡介,下面來一起看看吧。2017-02-02
jquery ajax局部加載方法詳解(實(shí)現(xiàn)代碼)
下面想就為大家?guī)硪黄猨query ajax局部加載方法詳解(實(shí)現(xiàn)代碼)。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過來看看吧2016-05-05
js+JQuery返回頂部功能如何實(shí)現(xiàn)
很多網(wǎng)站上都有返回頂部的效果,本文闡述如何使用jquery實(shí)現(xiàn)返回頂部按鈕,需要的朋友可以參考下2012-12-12
Easyui使用Dialog行內(nèi)按鈕布局的實(shí)例
下面小編就為大家?guī)硪黄狤asyui使用Dialog行內(nèi)按鈕布局的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
關(guān)于錨點(diǎn)跳轉(zhuǎn)及jQuery下相關(guān)操作與插件
錨點(diǎn)嘛,業(yè)余點(diǎn)的解釋就是可以讓頁面定位到某個(gè)位置的點(diǎn)。在高度較高的頁面中經(jīng)常見到2012-10-10

