jQuery - 有什么区别

问题描述:

我正在检查我的一个客户端代码,并发现了这个问题。jQuery - 有什么区别

$(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()函数中附加事件处理函数。

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

+1

如果您使用JQuery> 1.7,您将需要使用'.on'而不是'.bind'。对于你的问题,它做同样的事情。 – 2012-07-12 09:41:46

+0

谢谢Michael :) – AdityaParab 2012-07-26 09:11:58

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

编辑:

让我给你举个例子

失败,它将需要显示与警报“你好,这是走错了!”你可以做这两件事情:

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

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

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

但是.....想象一下,您正在开发一个非常大的项目,并且可以在1000个位置显示错误。现在您需要在1000个地方编辑您的消息,而不是仅仅一个地方。

或者当您想要显示HTML弹出窗口而不是提示时,想象一下改变它。

希望解释是有道理的,何时不请让我知道。

+0

hehe ..是:) 我明白你在说什么。我在问是否有一些与性能有关的问题。 Creatind函数可让您重复使用代码。 – AdityaParab 2012-07-12 09:50:08

+0

不会有很多的性能差异,而不是这种小的差异。 :) – Ronn0 2012-07-12 09:51:16