關於jQuery用bind動態繫結事件無效的處理

執筆記憶的空白發表於2015-06-15

最近在進行頁面開發,在做頁面特效的時候,需要給一個動態載入的按鈕賦予一個事件


於是不假思索的 用$(obj).bind();  來繫結事件 。

但是這樣存在一個問題:

bind確實能繫結事件,但是那是相對於固定的html標籤來說


當頁面內容屬於動態載入的時候,bind事件就存在一個bug,  只能bind一次,當你第二次觸發事件的時候就沒用了


例如:

我給<a>標籤賦予一個click , <a>標籤包括內容都是從後臺資料讀取然後動態載入的   。當我使用bind來繫結click事件,這時, 第一次點選click能成功觸發

但是第二次點選,click事件無效了...


後面研究發現,jQuery還有個繫結事件的方法:delegate();  用法如下:

$(".sentnum-box").delegate(".a-add-ordergoods","click",function(){  
      //js資料程式碼
});

這樣就能實現對動態資料繫結事件,並永不失效




相關文章