0

$(document).ready()DOM 操作のために jQuery のように準備完了イベントを使用する必要があるのでしょうか。たとえば、JavaScript関数があります:

function handler(input,id) {        
    $(document).ready(function(){
        document.getElementById(input).value = id;
        document.search_form.submit();  
    });

}
4

4 に答える 4

6

いいえ、神はありません。そうしないでください。$(document).ready()関数の中に入れてはいけません。

于 2012-11-13T14:46:31.893 に答える
5

いいえ、必要ありません。</body>代わりに、タグの前のドキュメントの最後に JavaScript を配置できます。

このイベントを使用することもできますが、window.onloadお勧めしませんが、これはすべての画像が読み込まれるまで発生しないため、DOM が読み込まれてから時間がかかる可能性があります。

ただし、JavaScript を使用して DOM 要素を操作するには、それらの要素がブラウザーに完全に読み込まれるまではできないため、これら 3 つの方法のいずれかが最善の方法です。

$(document).readyそうは言っても、おそらく別の関数の中に入れる正当な理由はありません。ほとんどの場合、$(document).ready他の JavaScript コードを囲む必要があります。

于 2012-11-13T14:45:43.173 に答える
1

あなたのコードに関するいくつかのコメント:

1. function handler(input,id) {        
2.    $(document).ready(function(){
3.        document.getElementById(input).value = id;
4.        document.search_form.submit();  
5.    });
6.}

2 行目と 5 行目は必要ありません。これは関数であり、ロード時に実行するのではなく呼び出されるため、ready ハンドラは必要ありません。この$(document).ready(function() {行は、次の場合に次のコードを実行することを意味しますDOM-readyあなたのような関数の内部が必要ない場合(ただし、それでも機能します)。ここで詳細を読むことができますready()

3 行目$('#'+input).val(id);は、jQuery ID セレクターval()関数を使用して値を変更するように変更できます。

で終わる

function handler(input,id) {        
  $('#'+input).val(id);
  document.search_form.submit();  
}

関数名から判断して、おそらくコードをもう少し変更できます....

于 2012-11-13T14:50:43.777 に答える
0

いいえ、ありません。いつ DOM を操作しようとしているかによって異なります。これは、javascript を の前、後、または内部のどこに配置するかを検討する必要があることを意味します<body>

于 2012-11-13T14:52:23.563 に答える