Обновление iScroll не работает при отображении ul

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

Вот мой jQuery/JS

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();
  }

  });

person josh_bailey4    schedule 10.09.2013    source источник


Ответы (1)


Добавьте обновление к обратному вызову slideDown:

$(this).next().slideDown(200, function() {
    iScrollRefresh();
});
person Samuli Hakoniemi    schedule 10.09.2013
comment
Спасибо. Я пробовал это, но не повезло. Даже поигрался с временем setTimeout до 0 мс. - person josh_bailey4; 11.09.2013