2013-09-10 5 views
0

Создание приложения для публикации. Для оглавления у меня есть простой выпадающий список, который изначально скрывает неупорядоченный список с разделами, а на «tap» отображается соответствующая ul. Im, использующий iScroll, и когда показана ul, прокрутка сломана и имеет эффект отскока, который не позволяет прокручивать вниз или вверх. Я также использую jqt.bars.js, который втягивает iScroll и инициализирует его. Я понимаю, что iScroll имеет метод обновления, который получает новую высоту контейнера, что позволяет вам прокручивать правильно. Я не могу заставить его работать правильно. Пожалуйста, любые предложения или исправления, спасибо. Дайте мне знать, если вам нужны подробности. Вот мой JQuery/JSОбновление iScroll теперь работает при отображении ul

var myScroll; 

function createIScroll(){ 
myScroll = new iScroll('div#chapters div.sections-contents'); 
console.log('createIScroll'); 
} 

function iScrollRefresh(){ 
setTimeout(function(){ 
      myScroll.refresh(); 
      }, 300); 
console.log('refresh iScroll'); 
} 

//CHAPTERS DROPDOWN 

$(function() { 
var chapter = $('ul#nav a.chapter-title'); 
var sections = $('ul#nav li ul'); 
sections.hide(); 
chapter.addClass('chapter-active'); 
$(chapter).on('tap', function() { 
sections.slideUp(); 

chapter.removeClass('chapter-highlighted').addClass('chapter-active'); 

if(!$(this).next().is(":visible")){ 
    $(this).removeClass('chapter-active').addClass('chapter-highlighted'); 
    $(this).next().slideDown(200); 
    console.log("slidedown"); 

      iScrollRefresh(); 
    } 

    }); 

ответ

0

Добавить обновления для обратного вызова slideDown:

$(this).next().slideDown(200, function() { 
    iScrollRefresh(); 
}); 
+0

Спасибо. Я попробовал это, но не повезло. Даже играл с таймером setTimeout до 0 мс. –