[解決済み] FirefoxでReferenceError: event is not definedエラーが発生する。
質問
クライアント用のページを作ったのですが、最初はChromeで作業していて、Firefoxで動作するかどうか確認するのを忘れていました。現在、ページ全体がFirefoxで動作しないスクリプトに基づいているため、大問題になっています。
このリンクは、すべてのquot;リンクに
rel
右のページを隠したり表示したりすることにつながるもの。なぜこれがFirefoxで動作しないのか理解できません。
例えば、ページがid
#menuPage
,
#aboutPage
といった具合です。すべてのリンクはこのコードを持っています。
<a class="menuOption" rel='#homePage' href="#">Velkommen</a>
ChromeとSafariで完全に動作しています。
以下はそのコードです。
$(document).ready(function(){
//Main Navigation
$('.menuOption').click(function(){
event.preventDefault();
var categories = $(this).attr('rel');
$('.pages').hide();
$(categories).fadeIn();
});
// HIDES and showes the right starting menu
$('.all').hide();
$('.pizza').show();
// Hides and shows using rel tags in the buttons
$('.menyCat').click(function(event){
event.preventDefault();
var categori = $(this).attr('rel');
$('.all').hide();
$(categori).fadeIn();
$('html,body').scrollTo(0, categori);
});
});
解決方法は?
イベントハンドラの宣言が(一部)間違っている。
$('.menuOption').click(function( event ){ // <---- "event" parameter here
event.preventDefault();
var categories = $(this).attr('rel');
$('.pages').hide();
$(categories).fadeIn();
});
ハンドラのパラメータとして"event"が必要です。WebKit は、"event" にグローバル シンボルを使用する IE の古い動作に従いますが、Firefox はそうではありません。 jQuery を使用している場合、このライブラリは動作を正常化し、イベント ハンドラにイベント パラメータが渡されるようにします。
編集
- を提供する必要があります。
一部
パラメータ名; を使って
event
は何を意図しているのかを明確にしますが、これを
e
または
cupcake
など、何でもOKです。
また、(ChromeやIE、Safariでは)おそらくネイティブのパラメータではなく、jQueryから渡されたパラメータを使うべき理由は、そのパラメータがネイティブのイベントオブジェクトをjQueryで包んでいるためであることにも注意してください。ラッパーは、ブラウザ間でイベントの動作を正規化するものです。グローバルバージョンを使用した場合は、このようなことはありません。
関連
-
[解決済み】Google Conversionsが動作しない - スクリプトが読み込まれない
-
[解決済み】Uncaught ReferenceError。Firebase は定義されていません。
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] URLを新しいタブで開く(新しいウィンドウではない)
-
[解決済み] JavaScriptで変数が存在するか(定義されているか/初期化されているか)をチェックする
-
[解決済み] 動的に生成された要素にイベントバインディングを行うか?
-
[解決済み] Firefox または Chrome ブラウザから HTTP POST リクエストを手動で送信する方法
-
[解決済み] イベントを発生させた要素のIDを取得する
-
[解決済み】HTMLリンクを無効化する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Facebook Graph API のクエリで with=location を使用すると "Uncaught (in promise) undefined" というエラーが発生する。
-
[解決済み】TypeError: $(...).DataTable は関数ではありません。
-
[解決済み] Uncaught TypeError: 未定義のプロパティ 'top' を読み込めない
-
[解決済み】jquery $.ajaxオブジェクトのresponseJSONプロパティを取得する方法 [重複]。
-
[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?
-
[解決済み] React with ES7: Uncaught TypeError: Cannot read property 'state' of undefined [duplicate] (未定義のプロパティ'state'を読み込むことはできません。
-
[解決済み】Javascript - ERR_CONTENT_LENGTH_MISMATCH
-
[解決済み】エラー:リスン EACCES 0.0.0.0:80 OSx Node.js
-
[解決済み】React-Routerの子が1つしかない。
-
[解決済み】SyntaxError: 期待された式が、'<'を得た。