開始したばかりの新しいプロジェクト用に jQuery 1.7 をダウンロードしました。
ドキュメントを読んだ後、.on() が .live() を置き換えるようになりました。ドキュメントからの引用:
jQuery 1.7 以降、.on() メソッドは、イベント ハンドラーをアタッチするために必要なすべての機能を提供します。古い jQuery イベント メソッドに相当するものについては、.bind()、.delegate()、および .live() を参照してください。
だから私がやろうとしていることは非常に簡単です。もちろん、古い方法を使用する次のjQueryがあります。
$('a').live('click', function(e){
e.preventDefault();
});
これは問題なく機能します。つまり、アンカーのデフォルトの動作が防止されます。私がこれを使用する場合:
$('a').on('click', function(e){
e.preventDefault();
});
アンカーのデフォルトの動作は妨げられず、クリックすると別のページが読み込まれます。ここで露骨に間違ったことをしていますか、それとも .on() を誤解していますか?