markrui
markrui
  • 发布:2016-03-22 11:18
  • 更新:2016-08-03 15:45
  • 阅读:1688

在pullrefresh_with_tab.html示例中,当tab中的内容设置为ajax获取,tab的scroll会出问题

分类:MUI
      <div id="slider" class="mui-slider mui-fullscreen">  
        <div id="scroll" class="mui-scroll-wrapper mui-slider-indicator mui-segmented-control mui-segmented-control-inverted">  
            <div id="sliderSegmentedControl" class="mui-scroll">  

            </div>  
        </div>  
        <!--<div id="sliderProgressBar" class="mui-slider-progress-bar mui-col-xs-2" style="background-color: #7cc3bd"></div>-->  
        <div id="group" class="mui-slider-group">  

        </div>  
    </div>

如上部代码,我的顶部导航slider-indicator和slider-group的内容都是ajax获取的,获取之后再加上

var gallery = mui('.mui-slider');  
gallery.slider({  
    interval:0//自动轮播周期,若为0则不自动播放,默认为0;  
});

就可以实现slider-group的滚动。
slider-group和slider-indicator的单独滚动都没有问题,但是slider-group的滚动带动slider-indicator就会报错,
如图,是生成后我滑动了slider-group,slider-group已经加载了第二个选项卡的内容,但是slider-indicator没有滑到第二个,mui.js报错,


报错内容大概是因为Scroll没有进行初始化,导致获取不到pages数组的内容。但是自己尝试初始化也无果,不知道算不算mui的一个bug。
然而,只要点击过slider-indicator的一项或者对其进行滑动,那么slider-group带动slider-indicator的滚动就不会出现问题。应该是ajax生成的顶部导航tab会影响浏览器对每个control-item的计算,导致滚动不能联动。我尝试使用mui.trigger,使ajax获取数据后,模拟点击某一个选项卡,如果手动操作的话,就会正常,但是模拟点击无效(可能是所说的要在mui.init之前才行)。到底要怎么做,求助开发人员~多谢~

2016-03-22 11:18 负责人:无 分享
已邀请:
DCloud_UNI_FXY

DCloud_UNI_FXY

整个mui-slider都动态生成,动态初始化。

  • markrui (作者)

    明白了,就是先生成dom节点,然后让mui渲染。困扰我几天的难题解决了,多谢~

    2016-03-22 13:53

  • yangcc

    回复 markrui:我也碰到了这个问题,这个道理我是明白的,但是我不知道mui是怎么渲染的,怎么才能把这一步放在生成节点的后面

    2017-02-16 13:33

邬超

邬超

说具体点呢

该问题目前已经被锁定, 无法添加新回复