標準リンクを「ajaxify」しようとしています。jQuery on()関数を使用して、クリックをインターセプトし、コンテンツを動的に取得しています。
$('.nextLink').on("click", function(e) {
url = $(this).attr( 'href' ).replace( /^#/, '' );
$.get(url, null, function(response) {
$('#searchResults').replaceWith(response);
});
});
これは、標準のリンク動作が引き続き発生することを除いて正常に機能するため、ajaxを使用してコンテンツを取得しますが、ページ全体を更新すると消去されます。通常の送信を防ぐために、ハンドラーからfalseを返してみました
$('.nextLink').on("click", function(e) {
...
return false;
}
これは機能しますが、ajaxによってロードされるコンテンツにもリンクがあります。私の理解では、jQueryのon()関数は、ajaxを使用してロードされたコンテンツのハンドラーを再バインドする必要がありますが、追加するとreturn false
これが発生しないようです。
したがって、私はキャッチ22の状況にあるようです。イベントのバブリングを許可して、「on()」を正しく機能させることができますが、非ajax送信も取得するか、標準の送信を防ぐことができますが、これは休憩on()
誰かがこの状況に対処するための最良の方法を教えてもらえますか?
どうもありがとう