問題タブ [document-ready]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - $(docment).ready(function(){}); および $(window).load(function() {}); 錯乱
http://www.marioplanet.com/product.htmにある私のテスト製品ページには、いくつかの奇妙な動作があり、実際に解決するのに役立つ可能性があります。
さて、私は以前に画像のサイズ変更に問題がありました.ここの誰かが、画像のサイズ変更を
サイズ変更が発生する前に画像をロードするために、ドキュメント準備機能内にネストするのではなく、まだロードされていないため、サイズ変更によって誤った幅と高さが検出されないようにします。
これを行ったので、ドキュメント準備機能内にネストされている jQuery をどうすればよいのか疑問に思っています。これはファンシーボックス jQuery プラグインであり、正しく機能していないようです。
ファンシーボックス jQuery をドキュメント準備完了からウィンドウ ロード関数に移動すると、何らかの理由で、どれも機能しません!
私は本当にここでいくつかの助けを借りることができたので、どんな情報や提案も大歓迎です!
ありがとう!
アップデート:
補足として、画像がまったく読み込まれないようにする方法を見つけて、縮小効果が画像に適用されたら読み込むだけでいいので、画像が大きく表示されてから消えないようにすることをお勧めします。どこにも、縮小します。
jquery - HTMLページで複数の $(document).ready() の副作用(ある場合)は何ですか?
MVC パターンに準拠した Web アプリケーション フレームワーク (Symfony 1.3.6) を使用しています。
ビューレイヤーは、テンプレートデコレーターで構成されています。テンプレート ファイルには他のテンプレートも含まれる場合があります。これが私の質問の原因です。
いくつかのテンプレートで構成されるページ (「ホームページ」と呼びましょう) があると仮定します (コードはリファクタリングされているため、「サブ テンプレート」は他のページで使用できます。
リファクタリングの結果、メイン テンプレートで使用される小さなテンプレート (この例では「ホームページ」) には、jQuery 関連のコードを含める必要があります。
ホームページ テンプレートが 2 つのサブ テンプレートを使用するとします。
- テンプレートA
- テンプレート B
テンプレート A が次のスニペットで構成されているとします。
テンプレート B が次のスニペットで構成されているとします。
テンプレート「ホームページ」は次のようになります。
私はこれを試してみましたが、驚いたことに、マージされた最終ページ ('homepage) に $(document).ready() が 1 つしかないという点で機能しました。
私のブラウザー (Firefox) か Web フレームワーク (Symfony) のどちらかが舞台裏で「クリーンアップ」を行ったかどうかはわかりません。
私の質問は、jQuery 機能を「小さな再利用可能なテンプレート」にリファクタリングして、別のページで同じ機能を提供するために再利用できるようにする場合、どのように進めるのが最善の方法でしょうか?
ところで、私が話していることではないので、誰もjQueryプラグインを書くことを提案しないことを願っています.
jquery - jQueryのready関数の起動が早すぎます...準備ができていません!
複雑なページの一部であるいくつかのdivタグにサイズ変更可能を追加しています。ただし、実行が早すぎる場合は$(document).ready()。すべてが解析されたわけではなく、サイズ変更は失敗します。
ドキュメントの準備ができるまでjQueryを実際に待機させるにはどうすればよいですか?
私はもう試した...
これらと同じコードで一時的なボタンを追加することで、ページがレンダリングされた後にクリックすると、適切なサイズ変更可能なUIが得られます。
Firefoxv3.6.8でjQueryv1.4.2とjQueryUIv1.8.4を使用しています。
jquery - 続行する前に、すべての画像が `$(window).load()` 関数に読み込まれていることを確認してください
スライド ショー用の大きな画像をページに追加していますが、ページの通常の部分 (画像を含む) が完全に読み込まれたときにのみ、これらの画像の読み込みを開始したいと考えています。
そのために、$(window).load()
関数に画像を追加しています。
スライド ショーslideSwitch()
はすべての画像が完全に読み込まれると開始するはずですが、現状では、要素が DOM に追加された瞬間に開始されます。
document.ready
スライドショーが通常の画像の読み込みを妨げたくないので、ループを関数に移動できません。
間隔を設定する前に、すべての画像が読み込まれたかどうかを確認するにはどうすればよいですか?
jquery - jquery: ロードされた関数のバインドを解除します
ページが読み込まれたときに画像の背景のサイズを変更する機能があります。
ボタンをクリックしたときに、このロードされた関数を「アンロード」または「削除」して、ページの上にロードするのではなく、この関数を新たにロードできるようにしたい、
しかし、私はそれを機能させることはできません! アイデアはありますか?
ありがとう、ラウ
javascript - Internet Explorer の Javascript : 変数のロード/登録後に何かを行う方法
私は、Internet Explorer 8 を除くすべてのブラウザーで正常に動作する jQuery を使用しています (おそらく、以前のバージョンではそれほど心配していませんが)。jQuery の .each 関数を使用して、使用しているかなり柔軟性のない CMS によってページに自動生成された JavaScript 配列のすべての要素をループしています。
たとえば、私の CMS は、次の画像オブジェクトの配列を JavaScript でページに書き込みます。
次に、jQuery の各関数を使用して、この配列をループ処理し、すべての画像を小さな順不同リストで返します。
問題は、jquery の使用中に
FF / Safari / Chromeなどで正常に動作しており、実際に順序付けされていないリストをすぐにレンダリングできる.画像配列のコードの後に含まれています)。IE で「paths is null/undefined」エラーがスローされるため、これを知っています。
から変えたところ
に
私のコードは、ページ全体がロードされた後にのみ jquery の「各」関数を実行するため、IE で正常に機能しました (レンダリング時間が遅くなり、やろうとしていることで「ラグ」が発生するため、これは最悪です...しかし、それが機能する場合はちょっと)。ただし、Web サイトがキャッシュされている場合、「パス」という名前の配列が存在することを登録する前に、IE が $(window).load を使用しているときに各関数を起動することがあるようです。
私の各関数が失敗しないように、パス変数がIEによってすぐに登録されることを確実にする確実な方法を誰かが知っていますか?
jquery - jQuery の ready() メソッドのショートカット
ready() メソッドのいくつかのショートカットを見たことがありますが、テスト結果が混乱するので、実際に最初に何が起こるか知りたいです..
ここでは、自己呼び出しが最初に発生し、次にドキュメント、次にウィンドウが発生します。自己呼び出し手法は ready() メソッドと見なされますか?
jquery - 戻るボタンのクリックで $(document).ready がトリガーされるのはどのような状況ですか?
JQuery の $(document).ready 機能を使用して jqGrid インスタンスをセットアップするコードを使用しています。戻るボタンをクリックしてページに戻った場合でも、コードが起動されるようです。
簡素化されたテスト ページでは、[戻る] ボタンをクリックして到達したときに、同様の準備完了関数が呼び出されません。
この動作の違いの原因をどこで探すべきかについてのヒントを教えていただけますか?
この質問への回答でいくつかの関連情報を見つけましたが、過度にアクティブな Ready イベントを含むページには、アンロード用に登録されたイベント ハンドラーがありません。
javascript - 外部jsで「ddaccordion.init」のようなjqueryスクリプトを移動するにはどうすればよいですか?
こんにちは、私のサイトのヘッダーをより軽量にするために、すべての js を外部 js ファイルに入れようとしています。
したがって、ヘッダーには次のスクリプトがありますが、うまく機能します。
しかし、このスクリプトを内部のようにこの外部js内に移動しようとすると:
もう起動しません。外部の js ファイルから起動する方法が見つかりませんか?
これは本当に初心者の質問に違いありません:)しかし、jqueryは本当に初めてです。ご協力ありがとうございました。
javascript - jqueryセレクターの問題
jquery のドキュメントに div があり、$("#div id").append('html text')
構文を使用して 10 個ほどの div 子要素を追加します。
これが完了したら、子divの内容を確認しようとすると、次のalert($(".classname"));
ように返されます:
javascriptではなく、子divのhtmlコンテンツで警告することを期待していましたか?
完全なスクリプト:
更新:ここで何らかのjquery/javascript競合状態が発生していることは間違いありません。アラートを置き換えると、setTimeout(function(){alert($(".unseen").html());},1000);
期待されるテキストが返されます。タイムアウト一時停止を 1 ミリ秒に変更すると、null
もう一度戻ります。
遅延に固執する以外に、これに対する「実際の」回避策がわかりませんか?