$(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?
$(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?
可能会有轻微的性能差异,因为显然一个只会调用另一个。该库不包含执行相同操作的两个单独的实现。但是,这种差异并不相关,因为与它所做的其他工作相比,另一个调用的工作量很小,并且实际实现可能会从一个版本更改为另一个版本。
相反,live
不建议使用该方法,因为它的使用不直观,并且因为delegate
(或on
)允许您限制委托的范围。与用于同一事物的方法相比,该delegate
方法没有这些缺点。on
该库的作者倾向于在更少的方法中包含更多的功能,因此作者的建议是on
用于所有内容。delegate
但是,如果您觉得使用更清楚地显示了代码的意图,则不必遵循该建议。
不,只是在最新版本的 jQuery 中(如果我没记错的话 1.8+).on
方法抑制.delegate
方法。所以,如果你使用1.8-
jQuery 版本,你必须使用.delegate()
来完成几个目标,在 1.8+ 上你只需要.on()
方法