首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用live()?

如何使用live()?
EN

Stack Overflow用户
提问于 2012-04-25 15:00:12
回答 6查看 158关注 0票数 0

我有一个脚本,在那里我想使用生活在下面的代码。

代码语言:javascript
复制
if($('#Menu').length >0) {
   $('#Menu >li').click(function() {

   });  
}

我怎么使用它?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-04-25 15:02:28

使用on而不是live,因为自1.7起它已被弃用

代码语言:javascript
复制
if($('#Menu').length) {
   $('#Menu').on('click', '> li', function() {

   });  
}

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

从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。旧版本jQuery的用户应该优先使用.delegate()而不是.live()。

如果您使用的是jQuery版本< 1.7>= 1.4.2,则可以使用delegate

代码语言:javascript
复制
   $('#Menu').delegate('> li', 'click', function() { // different argument order than on

   });
票数 5
EN

Stack Overflow用户

发布于 2012-04-25 15:02:57

你没有。

为了支持.delegate().live()被弃用,然后是.delegate() (和.bind()等)。为了支持.on()而被弃用。

.live()的后继者的示例实现

这可能会给出类似的结果:

代码语言:javascript
复制
$('#Menu').on('click', '> li', function(){

});

如果没有.on(),请使用.delegate()

正如我提到的,为了支持.delegate().live()被弃用了,所以如果您的jQuery版本中没有可用的.on(),您应该首先尝试使用.delegate()

代码语言:javascript
复制
$('#Menu').delegate('> li', 'click', function(){

});

做类似事情的live()示例

如果你坚持使用.live(),你可以这样写代码:

代码语言:javascript
复制
$('#Menu > li').live('click', function(){

});

更正了问题中的示例

通常,您不需要检查是否存在某些内容,即可向其添加事件处理程序。jQuery将搜索该元素,如果未找到,则不会添加事件处理程序,因此您可以这样写:

代码语言:javascript
复制
$('#Menu >li').click(function() {

}); 

而不是你在问题中写的。

票数 2
EN

Stack Overflow用户

发布于 2012-04-25 15:02:41

.live( events, handler(eventObject) )

代码语言:javascript
复制
<script>
$("#Menu >li").live("click", function(){

});
</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10310808

复制
相关文章

相似问题

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