使用jQuery点击KeyUp上动态添加的链接

Click on dynamically added link on KeyUp with jQuery

本文关键字:添加 链接 动态 jQuery 点击 KeyUp 使用      更新时间:2023-09-26

我使用jQuery向DOM添加一些HTML。插入后,我想创建一个在keyup上调用的事件处理程序,并单击添加到el的链接。但是,jQuery找不到a元素,因为它是在加载页面后添加的。

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

如何更新el中的DOM?我知道jQuery中有on()(及其前身)。然而,它们对我没有帮助,因为事件不是注册在添加的元素本身上,而是注册在文档上,而另一个事件只是发生在新添加的元素上。关于如何解决这个问题有什么想法吗?

感谢@Johan的回复,我进行了进一步的调试,找到了解决方案:

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

因此,真正的问题不是DOM的变化,而是click()事件,它显然只能应用于单个元素,而不能应用于只有一个元素的列表。

关于click()不开火的一些进一步讨论可以在这里找到:我可以调用jquery click()来跟随<a>如果我还没有链接';是否已经使用bind或click将事件处理程序绑定到它?