显示ul时,iScroll刷新无法正常工作

时间:2013-09-10 16:10:00

标签: javascript jquery jqtouch iscroll

为出版物构建应用程序。对于目录,我有一个简单的下拉列表,它最初用部分隐藏无序列表,并在“点击”时显示相应的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();
  }

  });

1 个答案:

答案 0 :(得分:0)

为slideDown的回调添加刷新:

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