亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

動態(tài)生成的DOM不會觸發(fā)onclick事件的原因及解決方法

 更新時間:2016年08月06日 10:21:35   投稿:jingxian  
下面小編就為大家?guī)硪黄獎討B(tài)生成的DOM不會觸發(fā)onclick事件的原因及解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

最近朋友在做一個項目的時候,遇到動態(tài)加載微博內(nèi)容,然后點擊“展開評論”后獲取該微博的所有評論。這里使用了動態(tài)加載的<span mid='123456789′ class='get_comment'>點擊加載評論</span>。

然后再寫

$(“.get_comment).click(function(){

//響應(yīng)事件邏輯

})

發(fā)現(xiàn)click事件并不會觸發(fā),使用控制臺偵聽也木有錯誤。百思不得其解時,

因為我在以前做搜狐家居商城的運費管理時,也曾遇到,因此將焦點落在動態(tài)加載上。

記得當(dāng)時本人用的是行內(nèi)事件,在動態(tài)加載時用的是行內(nèi)事件。如 var oBtn = '<a onclick="Freight.delete_curr_citys();" href="javascript:void(0);">刪除</a>'; 其實Freight為對象.delete_curr_citys為此對象的一個方法。

當(dāng)然也可以使用jquery的live()函數(shù),重寫響應(yīng)邏輯:

$(“.get_comment”).live(‘click', function() {
var mid = $(this).attr(“mid”);
alert(mid);
});

這時候,jquery可以響應(yīng)span 的click事件了。這里用到live函數(shù)委派事件,主要用于動態(tài)生成的HTML的事件響應(yīng)。關(guān)于live()函數(shù)的作用,它最直觀的好處在于可以一直 “監(jiān)聽”客戶端瀏覽器操作,對于新增的DOM節(jié)點也會有效,而不需要重新綁定。也許是因為這個“監(jiān)聽”可能會不斷的去綁定、判斷,會造成web應(yīng)用性能問題,大家可以根據(jù)項目的復(fù)雜性選擇性使用。關(guān)于live函數(shù),這里有非常詳細(xì)的闡述:

定義和用法

live() 方法為被選元素附加一個或多個事件處理程序,并規(guī)定當(dāng)這些事件發(fā)生時運行的函數(shù)。

通過 live() 方法附加的事件處理程序適用于匹配選擇器的當(dāng)前及未來的元素(比如由腳本創(chuàng)建的新元素)。

語法

$(selector).live(event,data,function)

參數(shù) 描述

event 必需。規(guī)定附加到元素的一個或多個事件。

由空格分隔多個事件。必須是有效的事件。 

data 可選。規(guī)定傳遞到該函數(shù)的額外數(shù)據(jù)。

function 必需。規(guī)定當(dāng)事件發(fā)生時運行的函數(shù)。

以上這篇動態(tài)生成的DOM不會觸發(fā)onclick事件的原因及解決方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論