1
$('body').on("click", "ul.typeFirst li a.username", function(e)

可以吗?我这样做的原因是因为ul像上面这样可以多次动态加载。我只是想知道选择整个身体是否可以,或者创​​建一个div或其他东西并选择它div并将元素动态加载到该div中会更好。

4

2 回答 2

3

是的,这样做很好(尽管我相信 using$(document)实际上比 using更快$('body'))。

但是,如果所有有问题的元素都包含在同一个容器中<div>,请通过选择它。这<div>将是首选和最有效的解决方案。

基本上,只要您能够本地化(本地化我的意思是专注于)与您的事件相关的元素的特定部分,您就应该这样做。

于 2013-07-14T00:24:00.683 回答
1

了解实际情况很重要。看看这个站点,看看事件是如何遍历 dom 的。http://www.quirksmode.org/js/events_order.html

你正在做一些叫做委派的事情。它比将事件绑定到您真正想要的元素要昂贵得多,因为它必须在每次点击时检查事件目标。它可能适合您使用它的目的,但您要小心使用它。对于鼠标悬停事件之类的事情,您不希望在正文级别上执行此操作。

于 2013-07-14T00:40:55.907 回答