javascript - jQuery 无法识别动态添加的 HTML

标签 javascript jquery jquery-selectors

在这里阅读其他一些关于这个类似问题的内容,但我不确定如何将其应用到我的困境中。

我有一个 jquery 函数可以替换列表中的一些 HTML。 例如,在函数运行之前:

<ul id="mylist">
<li id="item1">blah blah blah</li>
<li id="item2">blah blah blah</li>
<li id="item3">blah blah blah</li>
</ul>

然后我有另一个在点击 LI 时运行,例如:

$("#mylist li").click(function () {
alert($(this).attr("id"));
});

工作正常,直到我动态修改 #mylist html,其中警报为空白。

如何替换 #mylist html 并仍然能够选择其中找到的 li?

最佳答案

要在所有 future 动态添加的列表项上维护此功能,您应该使用 $.on() 的事件委托(delegate):

$("#mylist").on("click", "li", function(){
  alert( this.id );
});

阅读更多关于 $.on() 的信息,在线阅读 http://api.jquery.com/on/ .

关于javascript - jQuery 无法识别动态添加的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1972626/

相关文章:

javascript - 如何(在哪里)存储网站中实时操作的信息?

jquery - selectCheckboxMenu 无法获取选中复选框的数量

javascript - 在空 jQuery 选择器数组上返回 "True"?

javascript - 基于美国州的重定向页面,使用 Maxmind geoip2 JS

javascript - jQuery 查找文本并隐藏该文本

jquery - JqG​​rid 和自定义类

jquery - 如何更改jquery上下文菜单的样式

javascript - jQuery-webkit-transform yAngle

javascript - jquery选择器按宽度

javascript - Chrome 扩展存储自定义对象类型剥离原型(prototype)方法