メニューナビゲーション関数を介してフォームを送信するjQuery関数があります。
$(function () {
$('#sidebarmenu1 a').on('click', function () {
var url = $(this).attr('href');
$('#myform').attr('action', url);
$("#myform").submit();
if (event.preventDefault) { event.preventDefault(); } else { event.returnValue = false; }
})
});
このセクション:
if (event.preventDefault)
{ event.preventDefault(); }
else
{ event.returnValue = false; }
サイドバーボタンのデフォルトのアクション(私は思う-これはまだ新しい)、つまり単にページに移動することを防ぎます。
これは、IEに対してpreventDefaultが定義されていないため、IEを満足させるためにこのように記述されています(そこで誤った用語を使用している可能性がありますが、IEはpreventDefaultを好みません)。
ただし、(他のスタックの質問で読んだように)イベントはFFに対してグローバルに定義されていないため、これによりFirefoxでエラーが発生します。次のエラーが発生します。
ReferenceError:イベントが定義されていません
このスタックの質問によると、 イベントはFireFoxでは定義されていませんが、ChromeとIEでは問題ありません。
IEとChromeでは、イベントはwindow.eventに解決されます。Firefoxにはこのプロパティがなく、代わりにパラメータとして渡すことでイベントハンドラ関数にイベントを提供します。jQueryは、すべてのブラウザーでイベントオブジェクトパラメーターを提供することにより、この違いを抽象化します。
しかし、私はここでjQueryを使用していると思っていましたが、まだ問題が発生しています。
私が基本的な間違いを犯している場合は申し訳ありませんが、自分でjsとjQを教えています。どんな助けでも大歓迎です、ありがとう!