jquery獲取不到動態載入的dom元素是一種什麼樣的體驗?
01-26
我碰見的問題是這樣的 :我是在載入頁面的時候,列表裡面的數據是通過 ajax 載入的!
$(function(){/*dom 載入完成後,a 運行*/a();
function a(){// 從伺服器拿到一個 dom 文檔 ,假設是「 & 我是鏈接&」// 用 append () 插入到 dom 文檔里}
$(" .my ").click ( function (){ alert (" 問題就在這裡, 那個動態 生成的 & 是沒法選中的!" );});});
事件委託.on() | jQuery API中文文檔(適用jQuery 1.0
$(document).on("click",".my",function(){
//..............
});
不添加事件 直接獲取元素節點 可以非同步獲取 等代碼執行完 解構都渲染出來 可以寫一個延時器setTimeout 在裡面寫要獲取的元素的代碼
可以用事件委託,delegate事件,使用 delegate() 方法的事件處理程序適用於當前或未來的元素(比如由腳本創建的新元素)
我正被這個問題折磨著,簡直要發狂,怎麼找都是undefined、null、0,簡直了想把電腦砸了,跟甲方撂攤子……我只是單純的想獲取dom節點而已,也不給你加事件,怎麼就獲取不到呢,怎麼就獲取不到呢,啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
就是這個,都一個小時了,就是出不來,讓你出個數字怎麼就這個難呢~~~~(&>_&<)~~~~
用delegate就行了,,大哥們
正在搜這個問題的解決方法,結果發現知乎竟然有這種問題·,簡直不能忍,快被這個問題搞瘋了,原來用live用的好好的,結果剛下了個最新的jquery後就給報錯啦,要瘋啦
用on就可以,live雖然也可以實現,但是在官方文檔里不建議使用了,估計以後會被砍掉。自己去查查文檔,on函數的用法就能解決。
10年前就有jQuery live技術了
嘗試下下 live or bind 方法 $(window).bind("click",function(e){ var obj = $(e.target); if(obj[0].className=="my") {//......... }})
推薦閱讀:
※用 js 和 css3 做動畫時,如何判斷所有的圖片元素都載入完了?
※你是如何打造自己的前端庫(css+js,主要是js了)的?
※如何清除頁面上已有的js?
※handlebars這個前端模板引擎如何,有類似的模板引擎推薦嗎?
TAG:jQuery |