2013-07-15 33 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