2013-02-08 64 views
1

我發表了一些發佈請求來創建一些div,在這些div上我監聽點擊事件來觸發事件。萊特的把這些新創建的div「.mydiv」,我不能用$(‘#mydiv’)。在(‘點擊’..),因爲它是動態創建的,所以我用在div上創建的動態偵聽事件

$(document).click(".mydiv", function(){ 
      //triggers some events 
     }); 

但是現在$(this)引用'document'對象,所以我不能得到被點擊的div並觸發相關的事件。我怎樣才能做到這一點 ?

編輯:它似乎很有趣,因爲我首先調用一個函數來創建thoses divs,這是我稱之爲click listener的函數。在這些情況下:$(document).on(「click」,「.mydiv」,...)不起作用。但是當後者直接放在html頁面內時,它可以正常工作。 (所以,至少它不是一個jQuery版本的問題)

回答

1
$(document).on("click", ".mydiv", function(){ 
     //triggers some events 
}); 

http://api.jquery.com/on/

閱讀Direct and delegated events部分

// doc or Parent | event | dyn. created el 
$( document ).on("click" ,  ".mydiv",  function(){ 
     //triggers some events 
}); 
+0

當然,我試過,但我總是得到這樣的信息:遺漏的類型錯誤:對象的翻譯:具有「開」 – Newben 2013-02-08 12:47:48

+0

@Newben比使用任何方法jQuery的更新版本。如果這不是一個選項,查看'.live()'方法的文檔 – 2013-02-08 12:51:07

+0

什麼是jQuery版本?如果它太舊*(<1.7)*支持.on,並且無法更新它,請在jquery文檔中檢查.delegate()或.live()。 – MildlySerious 2013-02-08 12:52:29

0

,你也可以試試:

$(".mydiv").live("click", function(){ 
      //triggers some events 
     }); 
+0

在我的文章中查看我的編輯 – Newben 2013-02-08 12:58:59

0

的JQuery有一個方法來綁定selecto上的事件rs在這種情況下。

.live('event', 'handler to be executed') : Attach an event handler for all elements which match the current selector, now and in the future. 

檢查它出此提琴:http://jsfiddle.net/ff5UJ/

相關問題