首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >未来元素的jQuery .on函数,因为.live已弃用

未来元素的jQuery .on函数,因为.live已弃用
EN

Stack Overflow用户
提问于 2011-11-19 09:05:16
回答 2查看 92.4K关注 0票数 176

我需要为未来<div>元素的click事件添加一个处理程序,这些元素还不存在。通常,我会使用jQuery的.live函数来处理这个问题,但是现在似乎为了支持.on,它被弃用了。

要以这种方式使用.on方法,jQuery建议设置选择器参数,以允许创建委托事件,并提供以下示例代码:

代码语言:javascript
复制
$("#dataTable tbody").on("click", "tr", function(event){
    alert($(this).text());
});

这一切都很好,但是我应该为我的初始选择器放入什么,他们有#dataTable tbody吗?请注意,$.on()不起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-19 10:35:00

jQuery的文档显示,您可以替换

代码语言:javascript
复制
$(selector).live(event, handler) 

使用

代码语言:javascript
复制
$(document).on(event, selector, handler)

此外,您还可以选择更精确,将$(document)替换为元素的静态父元素的选择器。例如,如果您有一个静态的table元素,并且tr元素是动态添加到DOM中的,则可以执行类似$('table#id').on('click', 'tr', ...)的操作

http://api.jquery.com/live/

票数 297
EN

Stack Overflow用户

发布于 2011-11-19 09:06:44

我一贴出这个问题就想明白了…真对不起!

初始选择器可以是任何父元素。因为我的元素将是body的直接子元素,所以我可以使用body作为选择器:

代码语言:javascript
复制
$('body').on('click', '.my_class', function(event) { ...

这是可行的,因为事件将会冒泡起来。这本质上是一个额外的.my_class过滤器的正常冒泡。

票数 39
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8191064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档