有人可以告诉我怎么使用绑定指定的事件处理程序之间的差异():

$(function(){
           $('someElement')
           .bind('mouseover',function(e) {
            $(this).css({
                        //change color
                        });
    })
    .bind('mouseout',function(e) {
        $(this).css({
                    //return to previous state

                 });    
    })
    .bind('click',function(e) {
        $(this).css({
                    //do smth.
                 });    
    })

}); 

和使用每个()为同一任务:

$('someElement').each(function(){

        $(this).mouseover(function(){$(this).css({/*change color*/})
                    .mouseout(function(){$(this).css({/*return to previous state*/});   
                    });     
                }); 
    });

感谢您。

有帮助吗?

解决方案

这是你给的例子,我想你实际上问的区别,如果有的话,有没有使用“捆绑”的方法,然后“事件”方法之间的东西。

例如,有什么区别:

$('.some_element').bind('click',function() { /* do stuff */ });

...和这个?

$('.some_element').click(function() { /* do stuff */ });

答案是,它其实并不重要。这是偏好的问题。事件方法是语法简单,涉及少打字,但是,据我所知,确实没有任何区别。我更喜欢使用的绑定方法,因为如果你需要一个以上的事件连接到相同的动作,你可以使用速记事件绑定。这也使得它更简单,如果你需要“解除绑定”事件时,了解/。

请参阅这里:.bind和其他事件 <之间差分/ p>

不过,从实际的问题问什么,“什么是‘每个’方法和‘绑定’方法之间的区别” ......好吧,这是一个完全不同的野兽。

您应该从来没有真正使用“每个”的方法来连接事件,因为“绑定”和“事件”方法使用的的更快CSS选择器引擎(在jQuery的情况下,它使用滋滋声引擎)。

有很少(或从不)的情况下这样的:

$('.some_element').each(function() { $(this).click(function() { /* do something */ }); });

...是比这更好的:

$('.some_element').bind('click',function() { /* do stuff */ });
scroll top