2

我已经知道 .on 应该取代 .live 已经有一段时间了,但是我根本无法让它工作。

我试过了:

$(this).on('click', function(){
    // Do something...
})

$(this).on({
    click: function(){ // Do something }
})

但它从来不适合我!

特别是当我尝试将事件绑定到页面上最初可能不存在的元素时。

有人可以一劳永逸地为我解决这个问题吗?


我正在使用最新版本的 jquery。

4

3 回答 3

2

这样做:

$(".parent").on('click', ".child", function(){
    // Do something...
})

您使用的语法就像bind. 要将事件绑定到所有未来元素,请使用上述语法。

于 2013-01-09T06:31:15.227 回答
2

对于动态生成的元素,您需要使用 like

$(document).on('click','YOUR SELECTOR', function(){

});

这是因为 document 是你的元素的容器,可以观察 DOM 的变化。对于每个动作,都需要一个显式的事件监听器。如果你将某些东西绑定到 $(this),当你删除它时它(选择器)可能不存在。

于 2013-01-09T06:33:52.290 回答
1

您需要指定哪些元素。

$element.on('click', '.foo', handler)

将绑定handler到所有居住.foo在里面$element

于 2013-01-09T06:30:40.413 回答