javascript - jQuery 中使用 bind() 和each() 分配事件处理程序的区别?

标签 javascript jquery function bind each

有人可以告诉我使用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/

相关文章:

javascript - JQuery - 带有按钮的克隆 DIV 错误地重复

php - 你如何连接到函数内部的数据库

c++ - 从函数返回指针给出奇怪的数字

javascript - .focus() 在 .on ('click' 、函数(事件)内无法工作

javascript - 如何将两个数组传递给javascript中的函数

javascript - 检查 javascript 代码是否存在 session 中的对象

jquery - 使用ajax自动完成文本框的策略

javascript - 在 Webmatrix 中的 JavaScript 文件中启用 jQuery Intellisense

javascript - 将 redux 存储保存到本地存储 - 使用 lit-element

jquery - 动态设置 Kendo UI Slider 上的最大值