-2

この質問が何度も出ていることは知っていますが、それぞれがこれとは少し異なって見えます. 以下は文字通り、Apacheで実行しているファイルです。

<!DOCTYPE html>
<html>
<head>
  <title>test</title>
</head>
<body>
  hello 

  <script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
  <script>
  $.ready(function() {
    $("body").append("world");
  });
  </script>

</body>
</html>

この質問に回答する前に、 http://jsperf.com/document-ready-vs-fn-ready-pointless-optimizations-ftw/2をご覧ください。

4

7 に答える 7

7

そのはず

$(document).ready(function() {

});
于 2012-07-22T14:59:02.773 に答える
5

jsPerf ケースには欠陥があります。DOM が実際に準備ができたときに$.ready内部的に呼び出されます。に渡された関数を実行します。したがって、自分で呼び出すのは意味がありません。$(document).ready

  • 内部機能です
  • DOM の準備が整うのを待たない
  • 関数を受け入れません

通常の関数を使用する$(...)$(document).ready(...)、それが探しているものです( jsPerfが示唆する代替手段で$.readyはありません)。

于 2012-07-22T15:10:48.610 に答える
3

この質問に回答する前に、 http://jsperf.com/document-ready-vs-fn-ready-pointless-optimizations-ftw/2をご覧ください。

ページが「無意味な最適化」と題されているのには理由があります。

無意味な最適化を行う代わりに (この場合、ページビューごとに 1 マイクロ秒以下を削っています)、ドキュメントの準備が整った状態でコードを実行する文書化された方法を使用してください。

ここでの答えは、通常の方法を使用して、Google の「時期尚早の最適化」に進むことです。

于 2012-07-22T15:19:18.550 に答える
2

$.readyユーティリティ関数ではありません。これを試してください:

$(document).ready(function() {
    $("body").append("world");
});
于 2012-07-22T14:59:11.067 に答える
2

コールバックの別の代替手段document.readyは-

$(function(){

});

私がこれを気に入っているのは、覚えやすく、コードをレビューしているときに目立つほどユニークだからです。


関数に関するjQueryのドキュメントからready()-

.ready() に渡されたハンドラーは、DOM の準備が整った後に実行されることが保証されているため、これは通常、他のすべてのイベント ハンドラーをアタッチして他の jQuery コードを実行するのに最適な場所です。

元の構文を説明すると、コールバック関数をオブジェクトに$('document').ready(function() { ... }アタッチして、すべての DOM と jQuery ライブラリがいつ読み込まれるかがわかります。readydocument

于 2012-07-22T15:00:13.857 に答える
2

スクリプトを body タグの外に移動し、それが違いを生むかどうかを確認します..それが理由であるかどうかはわかりません..

<!DOCTYPE html>
<html>
<head>
  <title>test</title>
</head>
<body>
  hello 

  <script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>


</body>
<script>
  $.ready(function() {
    $("body").append("world");
  });
  </script>
</html>
于 2012-07-22T15:09:28.963 に答える
1

これも機能します:

$(function () {
  $('body').append('world');
});
于 2012-07-22T15:01:39.083 に答える