2017-01-23 83 views
-1

我有以下jQuery的滑塊打開子菜單,當父項被點擊。它在Chrome上工作正常,但在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'('event。preventDefault()'),所以你需要包含它。 –

+0

是的,Mozilla在遇到preventDefault時寫入了ReferenceError,而Chrome沒有說什麼。 –

+0

是的,Chrome「幫助」爲你預先定義變量_event_。如果它被稱爲別的東西,說'ev'或'e',它也會在Chrome中失敗。 –