2013-07-15 93 views
0

我使用jQuery將一些HTML添加到DOM。插入後,我想創建一個事件處理程序,並在keyup上調用,並單擊鏈接添加到el。但是,jQuery沒有找到a元素,因爲它是在加載頁面後添加的。點擊動態添加鏈接上的KeyUp與jQuery

var el = $("#name"); 
// add content to el 
$(document).keyup(function(e) { 
    el.find('a').click(); 
}); 

如何更新el中的DOM?我知道在jQuery中有on()(及其前任)。然而,他們不幫我,因爲事件是而不是註冊在添加元素本身上,但在文檔上另一個事件恰好發生在新添加的元素上。有關如何解決這個問題的任何想法?

+0

怎麼樣,當你添加的內容結合KeyUp事件? – Virus721

+0

'keyup'事件處理程序顯然只在'input'和'textarea'元素中觸發。 – str

+0

你也試過把它綁定在窗口上嗎? – Virus721

回答

0

由於@Johan的響應我在做進一步調試和找到了解決辦法:

el.find('a')[0].click(); 

所以,真正的問題不是改變DOM,但,顯然只能應用於單個的click()事件元素而不是僅包含一個元素的列表。

進一步討論有關click()不點火可以在這裏找到:Can I call jquery click() to follow an <a> link if I haven't bound an event handler to it with bind or click already?

+0

'click()'可以在多個元素上調用。使用jQuery轉到常規頁面並執行$(「a」)。click()並觀看樂趣開始!問題在於動態添加的內容。我不知道爲什麼jQuery無法處理它(至少在我使用的版本是1.7)。 – Andrew