我知道"实时"功能现已弃用.如何迁移以下内容以使用新的"on"?
$('a.action').live( "click", function (evt) {
// Do stuff
}
Run Code Online (Sandbox Code Playgroud)
场景是a.action正在动态创建.我试过这个,但无济于事:
$('a.action').on( "click", function (evt) {
// Do stuff
}
Run Code Online (Sandbox Code Playgroud)
如果你想要在添加事件处理程序时不存在对象的实际.live()类型性能a.action,那么你应该找到所有a.action元素的父DOM对象,它始终存在并绑定.on()到这样:
$(parent selector).on('click', 'a.action', function (evt) {
// Do stuff
});
Run Code Online (Sandbox Code Playgroud)
父母应该尽可能接近a.action对象以获得最大效率.因此,不希望绑定document.
实际上,一个.live()被弃用的原因是因为它被绑定到document对象并且当有太多事件都流过一个对象(事件调度性能受到影响)时很容易导致性能问题.
有关详细信息,请参阅我的其他相关答案:
jQuery .live()vs .on()方法,用于在加载动态html后添加click事件
jQuery的新on()方法如何与性能中的live()方法进行比较?
| 归档时间: |
|
| 查看次数: |
1919 次 |
| 最近记录: |