jQuery 2回目以降のクリックイベントが効かない時

$('#navi li a').click(function() {
    $('html,body').animate({scrollTop:0}, 'fast');
});

↑ この書き方だと2回目以降のクリックイベントが発生しない場合、下記のように記述します。

$(document).on('click', '#navi li a', function(){
    $('html,body').animate({scrollTop:0}, 'fast');
    console.log('aaa');
});

原因

原因はイベントハンドラが初回読み込み時のみに登録され、それ以降はイベントハンドラが登録されないことのようです。

解決方法

$(document).on('click', 'セレクタ', function(){
  /* イベント発火時の処理 */
});

$(document).onのように書くと、ウェブページ全体に対して、イベントハンドラを登録することで解決できそうです!

下記のサイトを参考にさせていただき、無事に問題解決できたので、本当に感謝です!

qiita.com