有人可以告诉我使用bind()分配事件处理程序有什么区别吗:
$(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.
});
})
});
使用each()来完成相同的任务:
$('someElement').each(function () {
$(this).mouseover(function () {
$(this).css({/*change color*/ })
.mouseout(function () {
$(this).css({/*return to previous state*/ });
});
});
});
最佳答案
从您提供的示例中,我认为您实际上是在问使用“bind”方法和“event”方法之间有什么区别(如果有的话)。
例如,以下之间有什么区别:
$('.some_element').bind('click',function() { /* do stuff */ });
...还有这个?
$('.some_element').click(function() { /* do stuff */ });
答案是,这真的不重要。这是一个偏好问题。事件方法在语法上更简单,并且涉及更少的输入,但是,据我所知,实际上没有任何区别。我更喜欢使用绑定(bind)方法,因为如果您需要将多个事件附加到同一操作,则可以使用速记事件绑定(bind)。它还可以让您更轻松地了解何时/是否需要“取消绑定(bind)”事件。
请参见此处:Difference between .bind and other events
但是,从实际问题的 Angular 来看,“‘each’方法和‘bind’方法有什么区别”......好吧,这是一个完全不同的野兽。
你永远不应该真正使用“each”方法来附加事件,因为“bind”和“event”方法使用更快的CSS选择器引擎(在jQuery的情况下,它使用Sizzle引擎)。
几乎没有(或从来没有)出现过这样的情况:
$('.some_element').each(function() { $(this).click(function() { /* do something */ }); });
...比这个更好:
$('.some_element').bind('click',function() { /* do stuff */ });
关于javascript - jQuery 中使用 bind() 和each() 分配事件处理程序的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/756547/