27

フィールドで日付ピッカーを機能させるには、このスクリプトを要素内に配置する必要があります

$( function() {
  $( "#date_datepicker" ).datepicker( { dateFormat: "yy-mm-dd" } );
});

を削除する $( function() { と、日付ピッカーが機能しなくなります。

$( function() {では、は と同じということ$(document).readyですか?

JavaScriptコードを最適化しようとしているので、これを知っていると役立つかもしれません.

4

7 に答える 7

43

以下のhttp://api.jquery.com/ready/からの抜粋を参照してください。

次の 3 つの構文はすべて同等です。

  • $(document).ready(handler)
  • $().ready(handler)(これはお勧めしません)
  • $(handler)
于 2012-05-15T07:19:57.747 に答える
14

.ready() メソッドは通常、無名関数とともに使用されます。

$(document).ready(function() {
  // Handler for .ready() called.
});

これは、次の呼び出しと同等です。

$(function() {
 // Handler for .ready() called.
});

ここで読めるように

于 2012-05-15T07:21:14.713 に答える
5

はい、同じものの簡略版です。関数が引数として渡されると、関数は$関数を呼び出します。$(document).ready

速度の点で最適化しようとしている場合、どちらもほとんど同じ$(document).ready(handler)ように実行されますが、何度も実行すると、長い方がわずかに速くなります。

ファイルサイズの観点から最適化しようとしている場合は、ミニファイヤを使用してください。

IMO あなたができる最善のことは、読みやすさとシンプルさの点で「最適化」することです。これにより、コードの理解と保守がはるかに容易になります。最適化されていないバージョンを取得し、圧縮して最適化するためのツールがあります (Google のクロージャ コンパイラを確認してください)。

于 2012-05-15T07:20:02.083 に答える
3

はい、$( function() { 同じ$(document).readyです。

$( function() {省略形の構文として機能しますが$(document).ready、コードが読みやすくなります。

于 2012-05-15T07:20:29.930 に答える
2

準備完了でコードを実行するための非常に安全な方法は次のとおりです

jQuery(function($, undefined){
  // code to run onready
});

私は個人的には次のようにすることを好みますが:

(function($){ // create scope and pass specific aliased variables

    $(function($, undefined){ // attach callback to run onready
       // code to run onready
    });

})(jQuery);

このようにして、他の人のコードを壊したり、緩い変数定義によってコードが壊れたりすることを恐れずに、独自の機能のバンドルを作成できます。また、渡した変数を任意の名前で呼び出すこともでき、たとえば、準備ができていないときにコードを実行することもできます。

(function($){ // create scope and pass specific aliased variables


    $(document).on('click', 'a[href]', function(){
       // code to run when a link is clicked
    });
    $(window).on('load',function(){
       // code to run onload
    });
    $(function($, undefined){ // attach callback to run onready
       // code to run onready
    });


})(jQuery);

これらは同じであることに注意してください

$(document).bind('ready', function(){});
$(document).on('ready', function(){});
$(document).ready(function(){});
$(function(){});

そして、そのドキュメントにはロードイベントがありません

$(document).on('load', function(){}); // will not work
于 2014-05-14T08:14:06.623 に答える
1

次のようなスクリプトもあることに注意してください。

jQuery(document).ready(function(){

ここで、$ 記号は、他のライブラリとの競合を避けるために jQuery に置き換えられます

http://docs.jquery.com/Using_jQuery_with_Other_Libraries

于 2012-05-15T07:25:17.480 に答える
0

jQuerymobile を使用していますか? もしそうなら、ドキュメントの準備ができた使用を使用する代わりに

$('#pageId').live('pageinit',function(){});
于 2012-05-15T07:24:09.627 に答える