2

jquery onready 関数の外側に jquery onclick イベントを書いています。jquery onready 関数の中に onclick 関数を書いた場合、実行の流れはどのように異なりますか?

例えば:

  1. jQuery(document).ready(function(){

  });
 jQuery("#elementid").click(function(){
  });

2.  jQuery(document).ready(function(){
    jQuery("#elementid").click(function(){
  });

  }); 

1と2の実行フローはどのように異なりますか。リアルタイムを使用するのに最適な方法はどれですか?
前もって感謝します。

4

5 に答える 5

2

2 番目の方が優れています。まだロードされていない要素を選択している可能性があるため、最初は機能しない場合があります。ドキュメント対応ハンドラーで囲むことにより、ページ要素を参照する前にすべてのページ要素が読み込まれていることを確認できます。

より一般的に...

// code that does not interact with DOM can go here, and will be executed
// before the has DOM finished loading.
jQuery(document).ready(function(){
  // code that needs to access the page elements/DOM goes here, and will execute
  // after the DOM has finished loading
})
于 2013-04-22T09:32:29.197 に答える
1

ハンドラーをDOM 対応関数の外で#elementid定義すると、セレクターが空の値を返す可能性があります。DOM 全体がロードされるのを待っていれば安全です。

一方、ハンドラーをドキュメントに委任できます。

$(document).on('click', '#elementid', function(event){ ... });

このようにしてdocument、要素がクリックされたときにイベントが全体でリッスンされ#elementidますが、もちろんそれはより高価になります。

于 2013-04-22T09:35:29.830 に答える
0

イベント ハンドラーを onready に記述する方が常に安全です。そうしないと、必要な要素が dom に追加される前にスクリプトが実行される可能性があるためです。

于 2013-04-22T09:33:14.987 に答える
0

ページでイベントを機能させたい場合は、$(document).ready()関数内で呼び出す必要があります。これは、すべての要素が DOM に追加され、使用できるようになっていることを確認するためです。

また、このドキュメントから:

$(document).ready() 関数には、イベントを機能させる他の方法よりも多くの利点があります。まず第一に、HTML に「動作」マークアップを入れる必要はありません。すべての JavaScript/jQuery を別のファイルに分離して、保守しやすく、コンテンツの邪魔にならないようにすることができます。

$(document).ready() を使用すると、ウィンドウがロードされる前に、イベントをロードまたは起動したり、イベントに実行させたいことを実行したりできます。角かっこ内に貼り付けたものはすべて、可能な限り早い段階で準備が整います — DOM がブラウザーによって登録されるとすぐに、ユーザーが最初にページ要素を表示したときにすぐに効果やその他のものを隠したり表示したりすることができます。

于 2013-04-22T09:33:34.643 に答える