jQuery:动态追加元素+ .on()

标签 jquery dom href

我有一系列 buy 类的 HREF。单击时我会覆盖它们,如下所示:

$('.buy').on('click', function (e) {
     e.preventDefault();
     var me = $(this);
     // other stuff here...

这按预期工作正常。当我动态地将更多这些链接附加到 DOM 时,问题就来了。单击这些链接时,不会捕获它们。我认为使用 .on() 方法进行绑定(bind)可以处理加载 JS 时 DOM 中不存在的项目。

不知道为什么,我似乎无法弄清楚。正如预期的那样,使用带有 .on 的标准点击捕获不起作用。

最佳答案

$(document).on('click', '.buy', function(e){
     e.preventDefault();
     var me = $(this);
     // other stuff here...
});

该事件需要委托(delegate)给静态元素,第二个参数是您希望函数运行的选择器。

您的方式虽然仍然保持不变,但不会将其附加到绑定(bind)到页面加载的静态元素。

关于jQuery:动态追加元素+ .on(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13985900/

相关文章:

javascript - div 重新加载后 jQuery 不工作

javascript - 如何使用 Javascript 在 UL-LI block 中进行简单的 DOM 操作?

html - SEO:hreflang 无法正常工作 - 我该如何解决?

javascript - 如何在触发 jQuery 动画之前打开链接

Javascript 不使用 = 运算符执行函数

java - 通过servlet的url模式将参数从jsp传递到servlet

javascript - 如何通过在angularjs中使用多个复选框来显示和隐藏多个div?

javascript - 如何防止 jQueryUI 的可拖动交互超出页面上的某个偏移量?

jquery - 隐藏的下拉选项框一旦选择就会消失

javascript - 无法将输入追加到 DOM