2010-10-05 83 views
1

什麼是適當的方法來獲得已經初始化的javascript與使用jQuery的load()方法加載的內容進行交互?jquery事件不會觸發通過load加載的內容()

例:你必須把對每行一個onclick事件表,然後一個新行追加()表中,突然的onclick()事件不會觸發。

希望有可能做到這一點,而無需手動重新初始化每個事件,將其寫入執行load()的代碼中。

我看過$ .getScript,live()和bind() - 但沒有得到任何工作。在我進行幾個小時的試驗和錯誤之前,我會很感激一些指導。

回答

2

對於要.live().delegate()事件例子,例如:

$("table").delegate("tr", "click", function() { 
    //do something, the table row is this, for example: 
    $(this).toggleClass("selected"); 
}); 

這樣做是附加一個事件處理程序<table>元素,監聽事件bubble up(哪些元素做不管),並且如果事件來自的元素與選擇器匹配,則在這些事件上行動,在這種情況下,該行爲是<tr>

,或者它有一個未知的父元素,使用.live()這樣的:

$(".something").live("click", function() { 
    $(this).toggleClass("selected"); 
}); 

.live()作品非常相似(在臉上.delegate()使用.live()內部),它只是重視document,在這樣一個父更高DOM。