2017-01-23 6 views
-1

親アイテムがクリックされたときにサブメニューをスライドさせる次のjqueryがあります。それはクロームでうまくいくが、firefoxではサブメニューは開かない。何か案は ?あなたのイベントハンドラでjQueryサブメニューがFirefoxで開かない

(function($) { 
"use strict"; 

    $('.menu-area ul li').on('click', function() { 

if($(this).closest("li").children("ul").length) { 
    event.preventDefault(); 
    $(this).children('ul').slideToggle(300); 
} 
else{ 
    event.preventDefault(); 
    $('.screen-washer').removeClass("right"); 
    //$('.screen-washer').addClass("left"); 

    //console.log($('a').attr('href')); 
    var linkLocation = $(this).children('a:first').attr('href'); 
     //alert(linkLocation); 
     if (linkLocation.indexOf('#') >= 0) {} else { 
      setTimeout(function() { 
       //$('.preloader').fadeIn(300); 
       window.location = linkLocation; 
      }, 500); 
     } 

} 
    }); 

})(jQuery); 
+1

こんにちは@Scott、あなたもあなたのHTMLを共有することができますか? –

答えて

1

- 機能() - 「イベント」それは構文解析上の非利用できる変数に達したときにMozillaはエラーで停止して、不足しています。

は次のようになります。

$('.menu-area ul li').on('click', function(event) {...} 
+0

具体的には、 'function()'だけを使用するのは完全に合法ですが、関数( 'event。preventDefault()')の 'event'を参照しているので、それを含める必要があります。 –

+0

はい、MozillaはpreventDefaultに遭遇するとReferenceErrorを書き込み、Chromeは何も言いません。 –

+0

うわー、Chromeは変数「_event_」をあらかじめ定義しておくと便利です。 'ev''や' e'といった何か別のものが呼び出された場合、Chromeでも失敗するでしょう。 –

関連する問題