显示 ul 时 iScroll 刷新不起作用

iScroll refresh not working when displaying a ul

本文关键字:刷新 不起作用 iScroll ul 显示      更新时间:2023-09-26

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

在 slideDown 的回调中添加刷新:

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