.live()vs .on()方法

nou*_*uky -5 jquery click live

我正在开发一个项目,当我按下min/plus按钮而不用方法悬停图片时.live(),该功能正常工作.在.on()方法的情况下,该功能不起作用.

我该如何解决这个问题,所以它也适用于.on()方法?

这是我所指的一个例子(我修复了这个例子中的错误,但我使用的.on方法是错误的).

Gre*_*tit 31

你没有正确使用它.替换.live()$(document).on()当事件和处理程序被传入,当然......例如:

$(document).on('click', '#myElement', function() { 
  //... some function ...
});
Run Code Online (Sandbox Code Playgroud)

值得一提的是,在.on()出现之前,.live()已经被认为是处理这种绑定的低效方式..delegate()建议改为,现在.on()(使用委托者语法).

或者作为一个例子:.live()你应该选择最近的祖先,而不是将文件作为监听器(这是以前的做法),而不应该使用DOM操作来破坏它.老实说,我发现"jsdo.it"使用起来有点笨拙,所以我没有特定的元素,但是例如,给定结构:

<div id="ajax_container">
 <button id="do_something">Clicky!</button>
 <p>Some dynamically-loaded content</p>
</div>
Run Code Online (Sandbox Code Playgroud)

其中的内容ajax_container通过Ajax调用(无需证明该部分的代码)所取代,结合该按钮的点击事件,看起来像一个非破坏监听器(容器DIV):

$('#ajax_container').on('click', '#do_something', function() {
 // do something
})
Run Code Online (Sandbox Code Playgroud)