国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

動態生成的DOM不會觸發onclick事件的原因及解決方法

2019-11-20 09:17:32
字體:
來源:轉載
供稿:網友

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

然后再寫

$(“.get_comment).click(function(){//響應事件邏輯})

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

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

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

當然也可以使用jquery的live()函數,重寫響應邏輯:

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

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

定義和用法

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

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

語法

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

參數 描述

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

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

data 可選。規定傳遞到該函數的額外數據。

function 必需。規定當事件發生時運行的函數。

以上這篇動態生成的DOM不會觸發onclick事件的原因及解決方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴马| 赤城县| 嘉峪关市| 永仁县| 焦作市| 黄大仙区| 彝良县| 行唐县| 凤冈县| 汤阴县| 原平市| 六枝特区| 潞城市| 永寿县| 抚松县| 谢通门县| 西峡县| 枣阳市| 遂川县| 团风县| 新平| 治县。| 从江县| 彝良县| 万年县| 化隆| 汉川市| 新兴县| 探索| 新巴尔虎右旗| 来凤县| 施秉县| 驻马店市| 远安县| 衡阳县| 富蕴县| 蒙城县| 云南省| 牡丹江市| 江油市| 赤峰市|