2015-08-24 18 views
0

Таким образом, я сделал это горизонтальное меню, которое имеет слайд слайда снизу под ним. Все работает отлично, за исключением того, что Internet Explorer и Edge складывают все подменю при нажатии любого из элементов с подменю. Я видел, что могут быть некоторые проблемы совместимости с toggle()/toggleClass(), но пока не найдено какое-то решение. Есть идеи?JQuery Internet Explorer/Edge toggleClass issue

Js:

$(document).ready(function(){ 
     $('.info-menu').click(function(){ 
      // Append proper class to generic submenu name. 
      var menuNumber = this.classList[1]; 
      var menuToggle = '.top-sub-nav-fixed.' + menuNumber; 
      // If other sub menu item is active, toggle active 
      $('.top-sub-nav-fixed').each(function(){ 
       if (typeof this.classList[2] != 'undefined' && this.classList[1] != menuNumber) { 
        $(this).toggleClass('active'); 
       } 
      }); 
      // Toggle appropriate menu item 
      $(menuToggle).toggleClass('active'); 
     }); 
    }); 

Fiddle здесь: JSFIddle

ответ

0

Решение было довольно просто: вместо того, чтобы использовать toggleClass() внутри each() заявления с использованием removeClass() сделал трюк. По какой-то причине IE задает все DIVs активным (в отличие от браузеров на основе webkit или gecko) при использовании toggleClass() в этой функции.