2013-04-04 1 views
3

Я изо всех сил, чтобы получить аккордеон коллапс контейнеров работать в Safari 6.0.3 на OSX 10.8.3OSX Safari 6.0.3 и Twitter Bootstrap коллапс плагин

Проблема возникает только тогда, когда браузер истории присутствует (некоторые другие страницы из домена были посещены). Если вы очистите историю, а затем перезагрузите страницу, аккордеон работает ???

То, что я и проходят до сих пор: 1. Все остальные браузеры работают в том числе браузеров для Windows, и Safari для старшего OSX (Snow Leopard) 2. в инспекторе я заметил, что элемент после того, как рухнул в это установлен на высоту: 40 пикселей, а не высота: авто, как это делает Chrome.

Вы заметили такое странное поведение?

+0

У меня такая же проблема. –

ответ

3

Я не нашел причины для плохого поведения в сафари, но подошел к обходному пути для аккордеонных складных элементов. Эффект перехода достигается с помощью jQuery slideUp и slideDown. Это может быть полезно кому-то.

if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1) { 

    if(navigator.userAgent.indexOf('Mac OS X') != -1 && navigator.userAgent.indexOf('Version/6.0.3') != -1){ 

     $('[data-toggle="collapse"]').attr('data-toggle', "safari-collapse"); 

     var collapsible_elements = $(".collapse").addClass('safari-collapse').removeClass('collapse').not('.in').hide(); 

     $('[data-toggle="safari-collapse"]').on('click', function(e){ 

      e.preventDefault(); 

      var target = $(this).attr('href'); 

      if($(this).attr('data-parent')){  // check if data-parent (accordion) 
       $(target).parent().siblings().find('.safari-collapse').not(":hidden").slideUp();  
      } 

      if($(target).is(":visible")){ 
       $(target).slideUp(); 
      } 
      else{ 
       $(target).slideDown(); 
      } 

     }); 

    } 

} 
Смежные вопросы