【问题标题】:wrapping a function as a jQuery parameter将函数包装为 jQuery 参数
【发布时间】:2012-03-08 08:52:34
【问题描述】:

当我遇到这种风格的构建代码时,我正在为我的网站构建一个自动完成功能:

$(function() {

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

    $(element).autocomplete(....

    //more code
});

我知道关闭,“IIFE”,但这个对我来说是一个新的。

  • 上面的“jQuery-wrapped”代码是怎么回事?
  • 我应该这样做有什么特别的原因吗? (范围?)
  • 在优化方面,我应该这样做吗?

【问题讨论】:

    标签: javascript jquery syntax coding-style


    【解决方案1】:
    1. $(function() { }); 等价于 $(document).ready(function() {}); 并且在 DOM 准备好后执行。

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

    3. $(element).autocomplete(.... 只是将插件实现到选择器,一旦 DOM 准备好执行。

    希望现在清楚:)


    $(function() {$(document).ready(function() { 不需要加载整个页面,也可以像 $(window).load(fn) 那样运行。

    【讨论】:

    • 谢谢!从来不知道这只是.ready()的简写
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      $(function() { } 中的所有内容都将在 DOM 加载后执行。我更喜欢使用 $(document).ready(function() { } 因为更清楚了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多