2

我正在检查我客户的一个代码并遇到了这个问题。

$(document).ready(function() {
    function foo1() {
        $("#id1").bind('click', function() {});
    }
    foo1();

    function foo2() {
        $("#id2").bind('click', function() {});
    }
    foo2();
});

他们正在做的是,在函数内部附加事件处理程序,然后调用该函数。

它与以下有何不同?

$(document).ready(function() {
    $("#id1").bind('click', function() {});
    $("#id2").bind('click', function() {});
});

$(document).ready()那就是直接在函数中附加事件处理程序。

它在这两种情况下都可以正常工作,我只是想知道是否存在一些与性能相关的问题或其他问题。就像一个工作更快或更慢。或者这是一种我不知道的标准做事方式。

4

1 回答 1

1

不同之处在于,您可以重新使用代码的该部分在代码中的任何位置再次调用 foo2() 而不是复制整个代码。

编辑:

让我给你举个例子

失败时,它需要显示“你好,出错了!”的警报。你可以做这两件事:

alert('Hello, that was going wrong!');

或者

function showError() {
alert('Hello, that was going wrong!');
} 
showError();

解决方案 1 似乎是最简单的。

但是.....想象一下,您正在处理一个非常大的项目,其中有 1000 个位置显示该错误。现在您需要在 1000 个位置编辑您的消息,而不仅仅是一个位置。

或者当你想显示一个 HTML 弹出窗口而不是一个警报时,想象一下改变它。

希望解释有意义,如果没有请告诉我。

于 2012-07-12T09:39:43.987 回答