1

我对 Twitter Bootstrap 的 JS 文件中的语法有疑问。这是一个示例文件(bootstrap-dropdown.js):

!function ($) {

/*  ...    */

  /* APPLY TO STANDARD DROPDOWN ELEMENTS -- QUESTION CODE
   * =================================== */
  $(function () {
    $('html').on('click.dropdown.data-api', clearMenus)
    $('body')
      .on('click.dropdown', '.dropdown form', function (e) { e.stopPropagation() })
      .on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle)
  })

}(window.jQuery);

为什么他们在 jQuery 函数$(function(){})中有一个代码块?我认为它可以在没有 jQuery 函数的情况下工作。

谢谢

4

2 回答 2

1
!function ($) {
    ...
}(window.jQuery);

这用于创建一个变量不会污染全局命名空间的范围(想想命名空间)。

如果不使用该toggle变量,例如,该变量将污染全局命名空间。

于 2012-06-25T17:02:06.223 回答
1

这个函数的行为就像 $(document).ready(),因为它应该用于包装页面上依赖于准备好的 DOM 的其他 $() 操作。

检查文档

于 2012-06-25T17:02:35.190 回答