0

そのため、サイトの上部にユーザーがクリックできるリンクのリストがあり、このクリックイベントが発生すると、ページ上の div 内の非常に大きなリンクのリストをスクロールする JavaScript 関数があります。問題はIE7にあり、クリックイベントが発生したときにどのように処理するかです。デフォルトのアクションを防ぐために jquery を使用しています。これは、Chrome、Safari、Firefox、および IE 8/9 で正常に動作しますが、IE7 では、ブラウザーはデフォルトの方法でアンカーを使用しようとしています。このアンカーの href プロパティは、ページの下部にあるリンクを識別するのに役立つ単なる文字列です。IE7 でリンクをクリックすると 404 が表示されますが、戻るボタンを押してリンクをもう一度クリックすると、スクリプトは正しく機能し、イベントは正しい方法で処理されます。私も試しました

event.preventDefault ? event.preventDefault() : event.returnValue = false;

e.preventDefault() の代わりに、IE7 が私のシナリオでクリック イベントを処理する方法に違いはありません。

助言がありますか?また、私のページには、ユーザーが現在他のタブを表示している場合 (タブが 2 つしかない)、そのタブに関連付けられたデータを非表示にするタブ付きナビゲーションがあります。どちらのタブのコンテンツもほぼ同じで、構造もまったく同じですが、最初の (デフォルト) タブのリンクで上記のエラーを引き起こしているのとまったく同じプロセスを実行すると、IE は問題ありません。

4

1 に答える 1

0

IE7 には、ページ上で非表示になっている要素にイベントをバインドする際に問題があることが判明しました。または、少なくともこれは、発生していた問題から私が確認できることです。.click イベント ハンドラーを使用する代わりに、jQuery によって提供される .on() と呼ばれるメソッドを見つけました。このメソッドは、バージョン 1.7 から廃止された .live() メソッドに取って代わりました。

「.on() メソッドは、jQuery オブジェクトで現在選択されている要素のセットにイベント ハンドラーをアタッチします。jQuery 1.7 以降、.on() メソッドは、イベント ハンドラーのアタッチに必要なすべての機能を提供します。」

これにより、IE7 の問題が修正されます。

于 2012-05-18T13:08:51.947 に答える