Jquery 代表如何发挥作用?

Jquery 代表如何发挥作用?,jquery,Jquery,我有两个mouseover函数的处理程序,我想知道它们的区别是什么,以及如何以最有效的方式使用它们 代码块一: 代码块二: 提前感谢:) 代理附加一个或多个事件 对于与 选择器,现在或将来,基于 在一组特定的根元素上 根据我对委托的了解,它允许您修改Event.target。因此,假设您的元素被单击,您可以重新定位到DIV。为每个.test元素附加一个mouseover事件处理程序,而不是每个。test DIV匹配,并用于将来添加到那些中的元素。test您调用的.delegate()元素 如果每

我有两个mouseover函数的处理程序,我想知道它们的区别是什么,以及如何以最有效的方式使用它们

代码块一:

代码块二:

提前感谢:)

代理附加一个或多个事件 对于与 选择器,现在或将来,基于 在一组特定的根元素上


根据我对委托的了解,它允许您修改Event.target。因此,假设您的元素被单击,您可以重新定位到DIV。

为每个
.test
元素附加一个
mouseover
事件处理程序,而不是每个
。test DIV
匹配,并用于将来添加到那些
中的
元素。test
您调用的
.delegate()
元素

如果每个
.test
中的
元素不超过几个,并且它们不会动态更改(例如通过AJAX添加),那么可以直接绑定。在其他情况下,如果它们是动态变化的,或者只有很多,请使用
.delegate()
,因为启动成本要便宜得多,而气泡/选择器成本也很小

这些都在文档中:

首先,委托与“活动”类似,因为它将应用于将来创建的对象。因此,您应该将其与:


    $('.test div').live('mouseover', function() {
                        $(this).stop().animate({
                            left: '100px'
                        }, 550);
现在,不同之处在于,对于委托,它将应用于调用命令后创建的div,而不应用于调用命令后创建的.test。如果您使用live on$(


使用live()或delegate()会降低性能,因此如果您不需要,则应使用仅适用于已创建元素的处理程序。

Awwww,您认为我是个玩偶。谢谢:-P@Klaus,他显然在跟我说话。@nickf,你这个幸运的混蛋:-)
$('.test').delegate('div', 'mouseover', function() {
                    $(this).stop().animate({
                        left: '100px'
                    }, 550);
                }); 

    $('.test div').live('mouseover', function() {
                        $(this).stop().animate({
                            left: '100px'
                        }, 550);