Javascript 如何使用ON而不是LIVE

Javascript 如何使用ON而不是LIVE,javascript,jquery,html,Javascript,Jquery,Html,可能重复: 我对jQuery有以下几点看法: $(".house td[red]").live("click", function() { alert('ok'); }); 但live函数已被弃用。我怎样才能用在手机上 $(".house td[red]").on("click", function() { alert('ok'); }); 不工作 $(

可能重复:

我对jQuery有以下几点看法:

          $(".house td[red]").live("click", function() {
              alert('ok');
          });
但live函数已被弃用。我怎样才能用在手机上

          $(".house td[red]").on("click", function() {
              alert('ok');
          });
不工作

 $(".house").on("click", 'td[red]', function() {
              alert('ok');
          });
你试过这个吗?您可以查看详细信息。例如:

$("#dataTable tbody").on("click", "tr", function(event){
    alert($(this).text());
});
所以你们基本上是把一个容器传递给包装器。不建议使用live的原因是,可以使用以下语法编写live:

$(document).on("click", '.house td[red]', function() {
              alert('ok');
          });
你可以看到这不是很有效。可能还有更多:所以你想改变它是件好事

$(document).on('click', '.house td[red]', function(){
    alert('ok');
});
你试过这个吗?您可以查看详细信息。例如:

$("#dataTable tbody").on("click", "tr", function(event){
    alert($(this).text());
});
所以你们基本上是把一个容器传递给包装器。不建议使用live的原因是,可以使用以下语法编写live:

$(document).on("click", '.house td[red]', function() {
              alert('ok');
          });
你可以看到这不是很有效。可能还有更多:所以你想改变它是件好事

$(document).on('click', '.house td[red]', function(){
    alert('ok');
});
文档是我们希望附加处理程序的静态元素

第一个参数是事件

第二个参数是选择器

第三个参数是您希望在触发事件时针对选择器运行的函数

文档是我们希望附加处理程序的静态元素

第一个参数是事件

第二个参数是选择器


第三个参数是您希望在触发事件时针对选择器运行的函数。

这是一个三参数变量,您可以选择泡点:

$('body').on('click', '.house td[red]', function() { alert("ok"); });

不同之处在于,实际事件处理程序的放置点在您的控制之下,就像不推荐使用的.delegate一样。您可以选择任何您喜欢的父元素,这在复杂页面中是一个很好的特性。例如,在您的例子中,您可以将处理程序放在所有.house元素上,而不是主体上。

这是一个三参数变量,您可以选择泡点:

$('body').on('click', '.house td[red]', function() { alert("ok"); });
不同之处在于,实际事件处理程序的放置点在您的控制之下,就像不推荐使用的.delegate一样。您可以选择任何您喜欢的父元素,这在复杂页面中是一个很好的特性。例如,在您的情况下,可以将处理程序放在所有.house元素上,而不是放在body上。

试试这个

$(document).on("click", ".house td[red]", function() {
     alert('ok');
});
试试这个

$(document).on("click", ".house td[red]", function() {
     alert('ok');
});
将其用作—

$(document).on("click", ".house td[red]", function() {
  alert('ok');
});
更有效的方法是使用.on和元素的直接父元素-

$('.house').on("click", "td[red]", function() {
      alert('ok');
});
阅读以更好地理解live和on之间的区别

将其用作-

$(document).on("click", ".house td[red]", function() {
  alert('ok');
});
更有效的方法是使用.on和元素的直接父元素-

$('.house').on("click", "td[red]", function() {
      alert('ok');
});
阅读以更好地理解直播和直播之间的区别

直播是一种全方位的功能,可以以不同的方式工作,包括直接活动和委托活动。现场直播是实现授权活动的一种方式。这是通过on实现的,方法是将过滤器作为param 2传递,并将回调转发到param 3:

$(".house").on("click",  'td[red]', function() {
    alert('ok');
});
on是一个“一切对所有人”的功能,它可以以不同的方式工作——包括直接事件和委托事件。现场直播是实现授权活动的一种方式。这是通过on实现的,方法是将过滤器作为param 2传递,并将回调转发到param 3:

$(".house").on("click",  'td[red]', function() {
    alert('ok');
});
将直接转换为:

$(document).on("click", ".house td[red]", function() {
    alert('ok');
});
但是,通过指定绑定时已知将存在的最近的容器,可以获得一些性能:

$('#someContainer').on("click", ".house td[red]", function() {
    alert('ok');
});
将直接转换为:

$(document).on("click", ".house td[red]", function() {
    alert('ok');
});
但是,通过指定绑定时已知将存在的最近的容器,可以获得一些性能:

$('#someContainer').on("click", ".house td[red]", function() {
    alert('ok');
});

我更喜欢mkk的解决方案。这样做,你几乎失去了在线直播的所有优势。From:从继承者的角度重写.live方法是直截了当的;这是所有三个事件附件方法的等效调用模板:…$document.onevents、selector、data、handler;//jQuery 1.7+…我更喜欢mkk的解决方案。这样做,你几乎失去了在线直播的所有优势。From:从继承者的角度重写.live方法是直截了当的;这是所有三个事件附件方法的等效调用模板:…$document.onevents、selector、data、handler;//jQuery 1.7+…live绑定到文档,而不是正文,尽管我不确定这会有什么不同。@jbabey在你发表评论之前我已经更改了它:但是很快就看到了!live绑定到文档,而不是正文,尽管我不确定这是否有任何区别。@jbabey在您发布评论之前我已经更改了它:但是好快的眼睛!