Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何使用live()?_Jquery - Fatal编程技术网

Jquery 如何使用live()?

Jquery 如何使用live()?,jquery,Jquery,我有一个脚本,我想在下面的代码中使用live in if($('#Menu').length >0) { $('#Menu >li').click(function() { }); } 如何使用它?使用而不是live,因为从1.7开始它就不推荐使用 if($('#Menu').length) { $('#Menu').on('click', '> li', function() { }); } 从jQuery1.7开始,.live方法已被

我有一个脚本,我想在下面的代码中使用live in

if($('#Menu').length >0) {
   $('#Menu >li').click(function() {

   });  
}
如何使用它?

使用而不是live,因为从1.7开始它就不推荐使用

if($('#Menu').length) {
   $('#Menu').on('click', '> li', function() {

   });  
}

从jQuery1.7开始,.live方法已被弃用。使用。继续 附加事件处理程序。jQuery旧版本的用户应使用 .委托优先于.live

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

你没有

.live被弃用为.delegate,然后.delegate和.bind等被弃用为.on

.live的继承者的示例实现 这可能会给您带来类似的结果:

$('#Menu').on('click', '> li', function(){

});
如果没有.on,请使用.delegate 正如我所提到的,.live已被弃用以支持,因此,如果您没有.on,那么您的jQuery版本中应该首先尝试使用:

做类似事情的实例 如果您坚持.live,您可以编写如下代码:

$('#Menu > li').live('click', function(){

});
更正了问题中的示例 一般来说,您不需要检查是否存在某些东西来向其添加事件处理程序。jQuery将搜索元素,如果未找到,它将不添加事件处理程序,因此您可以编写:

$('#Menu >li').click(function() {

}); 
而不是您在问题中所写的内容。

您不应该使用live。 你应该使用

Live已弃用,不应使用。 p、 这也将替换委托语法-如果您愿意

您不必提供第二个参数-然后它将侦听容器本身及其所有子级+子级。 从1.7开始+

例如:

$(".myDiv").on("click","#myButton",function (){
alert('1');
})

我的想法如下:

if($('#Menu').length >0) {
   $('#Menu >li').live('click', function() {

   });  
}

从jQuery1.7开始,.live方法已被弃用。使用.on附加事件处理程序。较旧版本jQuery的用户应优先使用.delegate而不是.live

在你的情况下,你可以这样使用

if($('#Menu').length >0) {
   $('#Menu >li').live("click", function() {

   });  
}

如果您使用jQuery>=1.7,您不应该开始了解.live,因为它很快就会被弃用,可能它已经被弃用了。您应该开始学习.on$document.on'click','Menu>li',函数{…};挑剔。。。如果$'Menu'.length{…}@elclars,我会遵从你的挑剔,大师,你不认为$'Menu'.length在这里毫无意义吗?查看我的答案以了解原因。我尝试了$'.menuDiv'。在'click','li',函数{alert.....};上面说的不是函数。我不能将它绑定到类吗?@user1184100:那么这意味着您的jQuery比1.7旧。您应该尝试使用。然后委派。加上这个答案跳过了选择器中的>字符,这是一个有意义的部分。
$(".myDiv").on("click","#myButton",function (){
alert('1');
})
if($('#Menu').length >0) {
   $('#Menu >li').live('click', function() {

   });  
}
if($('#Menu').length >0) {
   $('#Menu >li').live("click", function() {

   });  
}