Delegates 我应该将所有活动函数转换为委托吗?
根据我在这里提出的问题: 似乎普遍的共识是,委派>以绩效为目的。我应该把我的一生都变成代表吗?如果是这样的话,为什么要使用live函数呢?因为委托在性能方面更好Delegates 我应该将所有活动函数转换为委托吗?,delegates,jquery,Delegates,Jquery,根据我在这里提出的问题: 似乎普遍的共识是,委派>以绩效为目的。我应该把我的一生都变成代表吗?如果是这样的话,为什么要使用live函数呢?因为委托在性能方面更好 当委托在DOM中看不到我的选择器时,是否会“忽略”所有内容?如果没有任何可见的问题,就不应该重构代码以提高性能。但是,live()还有其他可能影响代码可维护性的问题: Live无法与stopPropagation()一起使用 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()
。哦。所以我必须确保文件存在,嗯?如果我在申报单上加上美元(“#家长先生”)。长度怎么办?