【问题标题】:iScroll refresh not working when displaying a ul显示 ul 时 iScroll 刷新不起作用
【发布时间】:2013-09-10 16:10:00
【问题描述】:

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

  });

【问题讨论】:

    标签: javascript jquery jqtouch iscroll


    【解决方案1】:

    在 slideDown 的回调中添加刷新:

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

    【讨论】:

    • 谢谢。我试过了,但没有运气。甚至将 setTimeout 时间设置为 0 毫秒。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 2023-04-03
    • 2015-02-16
    • 2022-01-16
    • 2013-12-08
    相关资源
    最近更新 更多