2009-08-12 8 views
1

$ .getで新しいページを取得した後、新しいページでjavascriptが実行されません。Javascript(Jquery)とGETについての質問

JavaScriptが新しいページを使用する方法はありますか?

感謝

  • Dorjan

編集:例:

$(function() { 
    $('.viewPage').click(function() { 
     $('#mainarticle').fadeOut('slow') 
     $.get($(this).attr('href'), { js: "1" }, function(data) { 
      $('#mainarticle').html(data).fadeIn('slow'); 
     }); 
     return false; 
    }); 
}); 

は今、これはしかし、正常に動作し、新しいページのアンカータグがトリガされません(それは持って言うことができますa .viewPage)。

私はこの問題を明確にすることを願っています。

答えて

2

あなたはliveを使用してアンカーにイベントをバインドする必要があります。

$('a.something').live("click",function() { 
    alert('this will still work after a.something has been replaced via ajax'); 
}); 

の$に.getのコールバックを使用して別の方法:

$.get("page.html", function(data) { 
    $('#someDiv').html(data); 
    $('a.something').click(function() { 
     alert('this will still work after a.something has been replaced via ajax'); 
    }); 
}); 

今、私はあなたのコードを見てきたこと:

$(function() { 
    $('.viewPage').live("click",(function() { 
     $('#mainarticle').fadeOut('slow') 
     $.get($(this).attr('href'), { js: "1" }, function(data) { 
      $('#mainarticle').html(data).fadeIn('slow'); 
     }); 
     return false; 
    }); 
}); 
+0

今すぐテストすると、これは右のように見えます! – Dorjan

+0

パーフェクト!私はjQueryをアップグレードしなければならなかった(1.2.2を使用していたので、これが見つからなかった!) ファンタジー、ありがとうカリム。 – Dorjan

+0

私はあなたの更新を見た前に実際にそれをしました(私は新しいjQueryをダウンロードしなければならなかったので、あなたの最初の指示は完璧でした):) – Dorjan

0

イエップ;あなたのページから返されたスクリプトを受け取り実行する別のjquery ajaxメソッドがあります。 jqueryドキュメントを確認してください。

+0

うーん...私は見ています。 jQueryがアンカータグのクリックを待つ同じページにいることを確認するだけです。しかし、同じページの新しいバージョン(AJAXのリロードを言う)では、すべてのアンカーは無視されます。 私は正しい機能を見つけることに失敗しましたが、ここでのチェックの間に読んでいます。 – Dorjan

+0

私はjQuery.getScript(url、[callback])を見つけました。これはあなたが意味していたと思いますが、私が意味するものではありませんでした。私は質問を明確にします。 ありがとうございます! – Dorjan

関連する問題