2

jQuery を使用して、特定の div をサーバー上の別のページから現在のページの div にロードしようとしています。コードはヘッダーにあり、ウェブサイトでの最初の 2 回のクリックでは正常に機能しますが、その後は正常に機能しません。

私が使用しているコードは次のとおりです。

 <script type="text/Javascript">
$('a').click(function(e) {
$("#container").load($(this).attr('href') + " #wrapper");
e.preventDefault();
});
</script>

サイトが完全ではない、または完全に機能していないことは認識していますが、次の手順を実行して、dev.justapo.coで今すぐ試すことができます。

  1. いずれかの投稿をクリックします
  2. 投稿が読み込まれたら、ヘッダーのタイトルをクリックします
  3. ページ上の任意のリンクをクリックします - jQuery が壊れています

jQueryを学ぼうとしていますが、ここで何が間違っているのかわかりません。

4

4 に答える 4

2

問題は、コードの実行時に $('a').click() がすべてのアンカー要素にイベント ハンドラーをアタッチし、新しく作成されたものにはそのハンドラーが設定されないことです。

次のように、委任を使用する必要があります。

$('body').on('click', 'a', handler_function);

.on()のドキュメントを参照してください。

于 2013-05-28T06:56:47.277 に答える
1
$('html').on('click', 'a', function(e) {
$("#container").load($(this).attr('href') + " #wrapper");
e.preventDefault();
});
于 2013-05-28T06:51:14.117 に答える
1

試す -

$('html').on('click', 'a', function(e) {
   $("#container").load($(this).attr('href') + " #wrapper");
   e.preventDefault();
});

アップデート

私はちょうどあなたのサイトを見ます。このようなことをする必要があるかもしれません -

$('#primary a').click(function(){
   $("#container").load($(this).attr('href') + " #wrapper");
   return false;
});

この IDprimaryと ID は重複できないため、問題が発生しています。クラスを使用する必要があります。

于 2013-05-28T06:51:49.630 に答える
0

このコードを試すこともできます

$('a').live("click",function(e) {
$("#container").load($(this).attr('href') + " #wrapper");
e.preventDefault();
});

それがあなたを助けることを願っています

于 2013-05-28T06:52:20.823 に答える