0

次のようにして、test.html というページから page.htm というページにコンテンツを正常にロードできます。

$(document).ready(function(){ 
     $("#reveal").load("test.html");
});

呼び出された page.htm に空の div を配置する#revealと、コンテンツが読み込まれます - 問題ありません。

test.html には、記事のタイトルと記事の内容を指定する 2 つの div クラスがあります。クラスは .artTitle と .artContent です。page.html の css ファイルでは、display:hidden を.artContent- にしているので、表示されるのは.artTitles. .artContents次に、トグルクリックで表示したいと思います。

この jQuery プロセスをインライン (同じページ内) で動作させることはできますが、html をロードするときに中断します。私が行方不明になっている読み込み中の問題は何ですか - (非常に緑の初心者)?

4

3 に答える 3

1

わかりました、私は jQuery の専門家ではありません。実際、私は本質的に同じ質問に対する決定的な答えを期待してここに来ました. すでに与えられた答えは、私を正しい方向に向けるのに役立ちました...これが私の解決策です...

次のような jquery 関数があると仮定しています。

 $('.trigger').click(function() { $('.artContents').toggle(); });

.load() を介してロードされる HTML には、クリックされる .trigger が含まれており、これにより .artContents がトグルされます。はい? 試す、

$(document).on('click','.trigger', function() { $('.artContents').toggle(); });

それが役立つことを本当に願っています。私は「非常に緑の初心者」キャンプであなたと一緒にいますが、これは私にとってはうまくいきました. なぜそれが機能するのかを正確に説明できませんでした。おそらく他の誰かができるでしょう。

于 2012-08-08T08:21:39.257 に答える
1

ロード機能ではなく、トグル機能が原因である可能性があります。コンテンツが読み込まれるまで存在しない要素にバインドしている可能性があります。on()リスナーを #reveal または別の祖先にバインドするには、デリゲート構文を使用する必要があります。

于 2012-05-24T17:51:11.940 に答える
0

次のようなライブイベントを使用する必要があります。

$('body').on('click', '.artTitles', function() { // binding live click to upcoming elements
   var self = this; // keeping reference to clicked title, because this will not catch into the hide callback function due to different scope
   $('.artContents:visible').hide( // hiding visible contents
    function() { // callback function
      $(self).closest('.artContents').show(300); // show content corresponding to title
   });
});
于 2012-05-24T18:12:05.847 に答える