1

我有一系列带有类的 HREF购买。单击时我会覆盖这些,如下所示:

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

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

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

4

2 回答 2

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

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

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

于 2012-12-21T07:18:39.987 回答
1

您也可以使用.target功能:

$(document).on('click', '.buy', function(e){
   e.preventDefault();
   var me = $(e.target);
   alert(me.attr('id'));
});

这个未经测试但可能有效:

$('.buy').on('click',function(e){     
   e.preventDefault();
   var me = $(e.target);
   alert(me.attr('id'));
});
于 2012-12-21T08:25:29.573 回答