Delegates 我应该将所有活动函数转换为委托吗?

Delegates 我应该将所有活动函数转换为委托吗?,delegates,jquery,Delegates,Jquery,根据我在这里提出的问题: 似乎普遍的共识是,委派>以绩效为目的。我应该把我的一生都变成代表吗?如果是这样的话,为什么要使用live函数呢?因为委托在性能方面更好 当委托在DOM中看不到我的选择器时,是否会“忽略”所有内容?如果没有任何可见的问题,就不应该重构代码以提高性能。但是,live()还有其他可能影响代码可维护性的问题: Live无法与stopPropagation()一起使用 Live就像一个全局变量。如果使用live(),类的不同实例可能会相互干扰 至于为什么live()仍然存在-

根据我在这里提出的问题:

似乎普遍的共识是,委派>以绩效为目的。我应该把我的一生都变成代表吗?如果是这样的话,为什么要使用live函数呢?因为委托在性能方面更好


当委托在DOM中看不到我的选择器时,是否会“忽略”所有内容?

如果没有任何可见的问题,就不应该重构代码以提高性能。但是,
live()
还有其他可能影响代码可维护性的问题:

  • Live无法与
    stopPropagation()
    一起使用
  • Live就像一个全局变量。如果使用
    live()
    ,类的不同实例可能会相互干扰
至于为什么
live()
仍然存在-根据:

作为一般最佳实践,切勿使用 。生活在你的应用程序中。直播后 是在jQuery中引入的,Justin 认为有必要举办更好的活动 委托API,委托为 创建。jQuery的主要原因仍然是 支持传统代码的live is


最后,
delegate()
的工作方式与
live()
完全相同,只是它将事件处理程序附加到您指定的元素,而
live()
将其附加到
文档。当事件冒泡到指定元素时,如果事件不是源于或通过与给定选择器匹配的元素,它将忽略该事件。

如果没有任何可见问题,则不应重构代码以提高性能。但是,
live()
还有其他可能影响代码可维护性的问题:

  • Live无法与
    stopPropagation()
    一起使用
  • Live就像一个全局变量。如果使用
    live()
    ,类的不同实例可能会相互干扰
至于为什么
live()
仍然存在-根据:

作为一般最佳实践,切勿使用 。生活在你的应用程序中。直播后 是在jQuery中引入的,Justin 认为有必要举办更好的活动 委托API,委托为 创建。jQuery的主要原因仍然是 支持传统代码的live is

最后,
delegate()
的工作方式与
live()
完全相同,只是它将事件处理程序附加到您指定的元素,而
live()
将其附加到
文档。当事件冒泡到指定元素时,如果事件不是源于或通过与给定选择器匹配的元素,则会忽略该事件。

.live()如果在DOM中找不到选择器,也会忽略任何内容。查看它们与jQuery文档的等效性:

Delegate是使用.live()方法的一种替代方法,允许将事件委派的每个绑定都绑定到特定的DOM元素。例如,以下委托代码:

$("table").delegate("td", "hover", function(){
    $(this).toggleClass("hover");
});
相当于使用.live()编写的以下代码:

.live()如果在DOM中找不到选择器,也会忽略任何内容。查看它们与jQuery文档的等效性:

Delegate是使用.live()方法的一种替代方法,允许将事件委派的每个绑定都绑定到特定的DOM元素。例如,以下委托代码:

$("table").delegate("td", "hover", function(){
    $(this).toggleClass("hover");
});
相当于使用.live()编写的以下代码:


假设我在$(“#mr id”)上声明了一个委托函数。如果名为#mr id的div存在与否,页面性能(负载,无论什么)是否相同?@corrected,使用
delegate()
必须从父元素调用它。如果在不存在的元素上调用它,它将不起作用。因此您必须执行:
$('mr id parent').delegate('mr id','click',handler)。在这种情况下,是的,性能更好。我的意思是,如果id先生的父母不存在,它还会像它存在一样吗?基本上,我想在一个包含在所有视图中的universal application.js中声明委托函数,不管它是否有#mr id parent。我只是想确定你能接受use@corroded,在这种情况下,编号。必须在调用时存在的元素上使用委托。如果您找不到保证存在的父级,那么您必须使用
文档
,在这种情况下,您应该只使用
live()
。哦。所以我必须确保文件存在,嗯?如果我在声明上添加了$(“#mr parent”)。长度呢?那么让我们假设我在$(“#mr id”)上声明了一个委托函数。如果名为#mr id的div存在与否,页面性能(负载,无论什么)是否相同?@corrected,使用
delegate()
必须从父元素调用它。如果在不存在的元素上调用它,它将不起作用。因此您必须执行:
$('mr id parent').delegate('mr id','click',handler)。在这种情况下,是的,性能更好。我的意思是,如果id先生的父母不存在,它还会像它存在一样吗?基本上,我想在一个包含在所有视图中的universal application.js中声明委托函数,不管它是否有#mr id parent。我只是想确定你能接受use@corroded,在这种情况下,编号。必须在调用时存在的元素上使用委托。如果您找不到保证存在的父级,那么您必须使用
文档
,在这种情况下,您应该只使用
live()
。哦。所以我必须确保文件存在,嗯?如果我在申报单上加上美元(“#家长先生”)。长度怎么办?