1

開始したばかりの新しいプロジェクト用に 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() を誤解していますか?

4

1 に答える 1

2

それは機能します。

http://jsfiddle.net/RsHnn/

そのページに JS エラーがないこと、または jQuery 1.7 を使用していることは確かですか?

編集

動的に追加された要素で動作させたい場合は、セレクターを追加する必要があるようです。

http://jsfiddle.net/RsHnn/2/

于 2011-11-04T16:04:40.170 に答える