我已经知道 .on 应该取代 .live 已经有一段时间了,但是我根本无法让它工作。
我试过了:
$(this).on('click', function(){
// Do something...
})
$(this).on({
click: function(){ // Do something }
})
但它从来不适合我!
特别是当我尝试将事件绑定到页面上最初可能不存在的元素时。
有人可以一劳永逸地为我解决这个问题吗?
我正在使用最新版本的 jquery。
我已经知道 .on 应该取代 .live 已经有一段时间了,但是我根本无法让它工作。
我试过了:
$(this).on('click', function(){
// Do something...
})
$(this).on({
click: function(){ // Do something }
})
但它从来不适合我!
特别是当我尝试将事件绑定到页面上最初可能不存在的元素时。
有人可以一劳永逸地为我解决这个问题吗?
我正在使用最新版本的 jquery。
这样做:
$(".parent").on('click', ".child", function(){
// Do something...
})
您使用的语法就像bind. 要将事件绑定到所有未来元素,请使用上述语法。
对于动态生成的元素,您需要使用 like
$(document).on('click','YOUR SELECTOR', function(){
});
这是因为 document 是你的元素的容器,可以观察 DOM 的变化。对于每个动作,都需要一个显式的事件监听器。如果你将某些东西绑定到 $(this),当你删除它时它(选择器)可能不存在。
您需要指定哪些元素。
$element.on('click', '.foo', handler)
将绑定handler到所有居住.foo在里面$element。