-4

$(document).on('click', '#target') VS. $('body').delegate('click', '#target');

As I can see, both the above do the job I want, but I would like to know what is the best practice in this matter.

Is one more efficient than another?

4

3 回答 3

0

可能会有轻微的性能差异,因为显然一个只会调用另一个。该库不包含执行相同操作的两个单独的实现。但是,这种差异并不相关,因为与它所做的其他工作相比,另一个调用的工作量很小,并且实际实现可能会从一个版本更改为另一个版本。

相反,live不建议使用该方法,因为它的使用不直观,并且因为delegate(或on)允许您限制委托的范围。与用于同一事物的方法相比,该delegate方法没有这些缺点。on

该库的作者倾向于在更少的方法中包含更多的功能,因此作者的建议是on用于所有内容。delegate但是,如果您觉得使用更清楚地显示了代码的意图,则不必遵循该建议。

于 2013-06-14T08:49:16.140 回答
0

delegate()on()jQuery 1.7 取代。正如文档所述:

从 jQuery 1.7 开始,.delegate() 已被.on()方法取代。然而,对于早期版本,它仍然是使用事件委托的最有效方法。有关事件绑定和委托的更多信息在.on()方法中。

于 2013-06-14T08:45:47.670 回答
0

不,只是在最新版本的 jQuery 中(如果我没记错的话 1.8+).on方法抑制.delegate方法。所以,如果你使用1.8-jQuery 版本,你必须使用.delegate()来完成几个目标,在 1.8+ 上你只需要.on()方法

http://api.jquery.com/on/

http://api.jquery.com/delegate/

于 2013-06-14T08:47:12.693 回答