標籤:

jquery獲取不到動態載入的dom元素是一種什麼樣的體驗?

我碰見的問題是這樣的 :我是在載入頁面的時候,列表裡面的數據是通過 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 |