検索

ホームページ  >  に質問  >  本文

javascript - jquery での $(function(){}) の使用について。

親愛なるヒーローの皆さん、私は js の初心者です。最近、簡単な Web サイトをデザインしていて、Web サイトから jq コードをコピーしました。
一部のコード セグメントの先頭が $(function(){...}) であることがわかりました。$( function(){...}) という形式で $( function(){$('#denglu_submit').click(function(){...
しかし、一部のコード スニペットには $(function(){}) がなく、直接 $(' #denglu_submit').click(function(){...など、テストしてみたところ、両方とも機能するようです。違いが何なのかわかりません。

typechotypecho2778日前1083

全員に返信(5)返信します

  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-26 10:53:00

    1. 両方のメソッドを置くと、html页面结构下面的话,写不写$(function(){})都行,都是等到页面加载完后执行(别忘了htmlは上から下に解析されてロードされます)。

    2. しかし、それらをすべてページ構造に配置すると、違いは大きくなります。 $(function(){})为网页加载完后执行,没有$(function(){})直接写的话是按html页面从上到下的顺序执行,也就是是说如果jsコードの実行時間が比較的長い場合(大量のデータの取得など)、次の HTML コンテンツはロードされて表示されません。 jsが実行されます。これは明らかに不合理です。 HTML コンテンツを最初に表示する必要があります。

    3. そのため、コードを書くときは通常、$(function(){})为好,这样就算jsコードにエラーがある場合、または実行に時間がかかる場合に、ユーザーのWebページの閲覧に影響を与えることなく、ページのメインコンテンツを読み込むことができます。そして、ページが完全に読み込まれることを保証するために、コードをページ構造の下に配置することが最善です (結局のところ、HTML は上から下の順に解析されて読み込まれます)。


    その他豆知識$(function(){})为网页加载完后执行,好像和原生js的window.onload = function() {}同じですが、違いがあります。前者は構造体(ピクチャを除く)をロードした後に実行され、後者は構造体(ピクチャを含む)をロードした後に実行されます。

    返事
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-26 10:53:00

    $(function(){}) これは、js がロードされ、dom 構造がロードされた後に実行される内部のロジックです。

    $('#denglu_submit').click(function(){...}) これはjsが読み込まれた後に実行されます。

    返事
    0
  • 阿神

    阿神2017-06-26 10:53:00

    $(function(){...})ここでの内容は、ページノードまたは参照ファイルがロードされるのを待ってから実行することです。これにより、ページ ノードがロードされ、セレクターに対応するノードも使用できるようになります。

    $('#denglu_submit').click(function(){...}),这个是等加载到这里的时候就执行了,执行的时候并不知道#denglu_submit有没有加载到页面上。如果页面没有这个节点,那么对应的事件是没有反应的。
    你可以试着把这两段段代码都放到head中で走らせてみれば違いが分かるでしょう!

    返事
    0
  • phpcn_u1582

    phpcn_u15822017-06-26 10:53:00

    window.onloadをご存知ですか?これはonloadよりも先に実行されます

    返事
    0
  • 给我你的怀抱

    给我你的怀抱2017-06-26 10:53:00

    まず、$ は関数名です。例:

    リーリー

    このようにして、$ という関数を定義し、それを自分でテストできます。 リーリー
    ここでは、パラメータが $ 関数に渡されます。このパラメータは匿名関数 (名前のない関数、クロージャとも呼ばれます) です。 リーリー

    最終的な実行は上記と同じですが、実行するために任意の関数を渡すことができます。 リーリー

    実際には、文字列 '#denglu_submit' が $ メソッドに渡され、次に匿名関数が $ の click 関数に渡されます。関数全体の設計は次のようになります。 リーリー
    もちろん、jquery は間違いなくより複雑です。

    返事
    0
  • キャンセル返事