在dom内容更改后引入isroll

时间:2012-03-30 18:25:50

标签: rhomobile iscroll

我正在使用rhomobile和jquery mobile创建一个应用程序。我尝试在我的页面中使用2 iscroll。在我的页面中,我有2个李。最初左侧的李是空的。当我点击右侧li时,将添加到左侧li并从右侧li移除。最初我使用滚动来查看右侧li中的元素。这工作正常。但是在左侧,当内容超过高度时,li iscroll不会出现。我搜索了很多。我得到了一些建议,但这对我不起作用。那些是

首先在我的选项中添加checkDOMChanges: true,然后设置超时时间:setTimeout(function () { myScroll.refresh() }, 0)

我的右侧ul id是accounts_container,左侧ul id是destinations_container

我的代码:

var destinations_scroll1, accounts_scroll;
function loaded() {
    destinations_scroll1 = new iScroll('destinations_container');
    accounts_scroll = new iScroll('accounts_container', {
        checkDOMChanges: true
    });
setTimeout(function () { accounts_scroll.refresh() }, 0)
}
document.addEventListener('touchmove', function (e) {
    e.preventDefault();
}, false);
document.addEventListener('DOMContentLoaded', loaded, false);

然后根据此链接 http://groups.google.com/group/iscroll/browse_thread/thread/6bdf7a2b5552d018

我试过

destinations_scroll1.destroy();
destinations_scroll1= null;
destinations_scroll1= new iScroll('destinations_container');

setTimeout(function() {
destinations_scroll1.refresh();
},0); 

在rhosimulator中,这会创建正常的css滚动但不能在模拟器中工作(真正的设计)。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我是个白痴。在上面的代码中,我正在检查checkDomChanges并刷新右侧ul的isroll对象,但我在左侧ul中添加了动态内容。

var destinations_scroll1, accounts_scroll;
function loaded() {
    accounts_scroll = new iScroll('accounts_container');
    destinations_scroll1 = new iScroll('destinations_container', { checkDOMChanges: true });
    setTimeout(function () {            
            destinations_scroll1.refresh();     
    }, 0);   
}
document.addEventListener('touchmove', function (e) {
    e.preventDefault();
}, false);
document.addEventListener('DOMContentLoaded', loaded, false);

这很好。