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

この関数は、DOM の準備ができていることに依存するページ上の他の $() 操作をラップするために使用する必要があるという点で、$(document).ready() と同じように動作します。

ドキュメントを確認してください。

于 2012-06-25T17:02:35.190 に答える