Javascript .on不能代替live工作
我已经知道了一段时间了。on应该取代。live,但我从来没能让它工作 我试过:Javascript .on不能代替live工作,javascript,jquery,event-handling,live,Javascript,Jquery,Event Handling,Live,我已经知道了一段时间了。on应该取代。live,但我从来没能让它工作 我试过: $(this).on('click', function(){ // Do something... }) $(this).on({ click: function(){ // Do something } }) 但这对我从来都不管用 特别是当我试图将事件绑定到页面上最初可能不存在的元素时 有人能帮我彻底澄清一下吗 我使用的是最新版本的jquery。您需要指定哪些元素 $element.on('
$(this).on('click', function(){
// Do something...
})
$(this).on({
click: function(){ // Do something }
})
但这对我从来都不管用
特别是当我试图将事件绑定到页面上最初可能不存在的元素时
有人能帮我彻底澄清一下吗
我使用的是最新版本的jquery。您需要指定哪些元素
$element.on('click', '.foo', handler)
将处理程序
绑定到$element内的所有活动.foo
$(".parent").on('click', ".child", function(){
// Do something...
})
您使用的语法的工作原理与bind
类似。要将事件绑定到所有将来的元素,请使用上述语法。对于动态生成的元素,您需要像
$(document).on('click','YOUR SELECTOR', function(){
});
这是因为文档是元素的容器,可以查看DOM的更改。对于每个操作,都需要一个显式的事件侦听器。如果将某物绑定到$(this),则在删除它时,它(选择器)可能不存在 你需要阅读文档.on()
替换了live
、bind
和delegate
,这实际上取决于参数/上下文的作用!顺便说一句,$(this).live()
根本不可能工作,除非这个
是通过调用$('selector')
创建的。这可能是一个老生常谈的答案,但官方jQuery文档对此解释得非常好。阅读“.on()”函数的文档,特别是“直接和委派事件”标题下的部分。它解释了它是如何工作的。但是,他通常不应该使用文档
而应该使用尽可能靠近新添加元素的父元素。我只是在发布ThiefMaster之前添加了一个编辑;)但我现在看不到编辑:(.Yes最近的元素选择器实际上更正确。@Mahbub by nearest element你是说最近的非动态添加元素吗?Yes当然可以@imperium2335,否则它不会工作。最安全的方法是使用文档,因为你不能删除此元素:)