首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery .live()和.on()有什么区别

jQuery .live()和.on()有什么区别
EN

Stack Overflow用户
提问于 2011-11-08 05:03:38
回答 3查看 44.8K关注 0票数 85

我看到在jQuery 1.7中有一个新的方法.on(),它取代了早期版本中的.live()

我很想知道它们之间的区别,以及使用这种新方法的好处。

EN

回答 3

Stack Overflow用户

发布于 2016-06-14 20:46:55

代码语言:javascript
复制
.live()

此方法用于为当前和将来与当前选择器匹配的所有元素附加事件处理程序。

代码语言:javascript
复制
$( "#someid" ).live( "click", function() {
  console.log("live event.");
});

代码语言:javascript
复制
.on()

此方法用于将一个或多个事件的事件处理程序函数附加到所选元素。

代码语言:javascript
复制
$( "#someid" ).on( "click", function() {
  console.log("on event.");
});
票数 2
EN

Stack Overflow用户

发布于 2013-01-01 08:03:18

我是一个使用jQuery的Chrome扩展"Comment Save"的作者,还有一个使用.live()的。该扩展的工作方式是使用.live()将侦听器附加到所有的文本区域-这很有效,因为每当文档发生更改时,它仍然会将侦听器附加到所有新的文本区域。

我搬到了.on(),但它不能很好地工作。它不会在文档发生变化时附加侦听器-所以我又回到了使用.live()。我猜这是.on()中的一个bug。我想你一定要小心。

票数 0
EN

Stack Overflow用户

发布于 2014-06-27 14:39:27

有关更多信息,请查看...live().on()

当您处理内容的动态生成时,使用.live()方法...就像我在程序上创建的那样,当我更改Jquery Slider的值时,它会添加一个选项卡,并且我希望将关闭按钮功能附加到将生成的每个选项卡上。我尝试过的代码是..

代码语言:javascript
复制
var tabs = $('#tabs').tabs();
                                        // live() methos attaches an event handler for all
                                        //elements which matches the curren selector
        $( "#tabs span.ui-icon-close" ).live( "click", function() {


            // fetches the panelId attribute aria-control which is like tab1 or vice versa
            var panelId = $( this  ).closest( "li" ).remove().attr( "aria-controls" );
            $( "#" + panelId ).remove();
            tabs.tabs( "refresh" );
        });

而且它的工作非常酷。

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

https://stackoverflow.com/questions/8042576

复制
相关文章

相似问题

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