Pjax の小さな例: http://indapublic.ru/pjax/
関数ハンドラは、「リンクのテスト」をクリックしてイベントを設定し、Javascript コンソールで「ハンドラ」を出力します。
function handler() {
console.log('handler');
// console.log($('#testLink'));
$('#testLink').click(function(event) {
event.preventDefault();
console.log('click');
})
}
関数ハンドラはpjax:success pjax:popstateイベントで実行されます。
$(document).on('pjax:success pjax:popstate', function() {
handler();
});
ロード後、直接または Pjax で「リンクのテスト」をクリックしてみてください。Javascriptコンソールに「クリック」を出力します。ただし、「戻る」ボタンで戻ると、関数ハンドラーは実行されますが、「リンクのテスト」をクリックしても機能しません。
なんで?