我不确定我是否正确地提出了我的问题,但无论如何......
我正在使用iscroll并将iScroll init调用包装在私有函数中供我以后使用。这就是我所拥有的:
Namespace.iscroll = function () {
var myScroll;
myScroll = new iScroll('mainContent-wrap', {
hScrollbar: false
});
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
document.addEventListener('DOMContentLoaded', Namespace.iscroll, false);
};
我使用Namespace.iscroll();
我的问题是,现在我想使用myScroll.refresh();
刷新iScroll,或者使用iScroll文档中描述的setTimeout
函数。
由于我将原始的init调用包装在私有函数中,如何运行刷新,以及其他方法(如destroy)?
答案 0 :(得分:1)
如果您在myScroll
函数运行后尝试访问iscroll
变量,则答案是您不能。它已经消失了。您必须将其保存在其他地方,以便您可以使用它。一个想法是将它与iscroll
放在同一个对象上:
Namespace.iscroll = function () {
Namespace.myScroll = new iScroll('mainContent-wrap', {
hScrollbar: false
});
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
document.addEventListener('DOMContentLoaded', Pelau.iscroll, false);
};
然后你可以这样做一个refesh:
Namespace.myScroll.refresh();
关键是你将myScroll存储在一个不是临时局部变量的持久和公共位置。