2012-03-08 42 views
0

我正在栋自动完成,我的网站,当我碰到这种风格的建筑代码:包装的功能作为一个jQuery参数

$(function() { 

    function log(message) { 
     $("<div/>").text(message).prependTo("#log"); 
     $("#log").scrollTop(0); 
    } 

    $(element).autocomplete(.... 

    //more code 
}); 

我知道倒闭,“IIFE”秒,但这个是一个新的为了我。

  • 上面的“jQuery-wrapped”代码是什么?
  • 有什么特别的原因我应该这样做? (范围?)
  • 优化明智,我应该甚至这样做?

回答

2
  1. $(function() { });相当于$(document).ready(function() {});和前一次执行DOM已准备就绪。

  2. 在里面定义一个函数是告诉你,函数只有在dom准备好执行后才可用。

  3. $(element).autocomplete(....只是在DOM准备好执行之后,才将选择器的插件实现。

现在希望其明确的:)


$(function() {$(document).ready(function() {不需要整个页面加载,运行如$(window).load(fn)一样。

+0

谢谢!从来不知道这只是'.ready()'的简写 – Joseph 2012-03-08 09:08:12

1

$(fn)$(document).ready(fn)是jQuery的onload/onDOMContentLoaded处理函数。传递给它的函数在页面上的DOM准备就绪后执行。

1

所有在$(function() { }将在DOM加载后执行。我更喜欢使用 $(document).ready(function() { },因为它更清晰。