jquery 动态生成html后click事件不触发原因
轉自:http://www.iam3y.com/html/560.html
?
最近在做一個項目的時候,遇到動態加載微博內容,然后點擊“展開評論”后獲取該微博的所有評論。這里使用了動態加載的<span mid=’123456789′ class=’get_comment’>點擊加載評論</span>。
然后再寫
$(“.get_comment).click(function(){
//響應事件邏輯
})
,發現click事件并不會觸發,使用控制臺偵聽也木有錯誤。百思不得其解時,將焦點落在動態加載上。
于是,使用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() 方法附加的事件處理程序適用于匹配選擇器的當前及未來的元素(比如由腳本創建的新元素)。
語法
$(<em>selector</em>).live(<em>event</em>,<em>data</em>,<em>function</em>)| event | 必需。規定附加到元素的一個或多個事件。 ? 由空格分隔多個事件。必須是有效的事件。 |
| data | 可選。規定傳遞到該函數的額外數據。 |
| function | 必需。規定當事件發生時運行的函數。 |
?
轉載于:https://www.cnblogs.com/wangjiangze/p/3284515.html
總結
以上是生活随笔為你收集整理的jquery 动态生成html后click事件不触发原因的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自问自答:在VB中如何实现像C++一样p
- 下一篇: 机房收费系统-- MDI子窗体显示技巧(