我正在使用这个PullToRefresh插件:
https://github.com/BoxFactura/pulltorefresh.js#api
它运作良好,但我的页面上有一个带有div内联滚动的弹出窗口。 问题是,当我想向上滚动(在div中)时,会触发PullToRefresh。有可能"删除"或者在我的弹出窗口打开时暂时禁用PullToRefresh?
Decimal?
编辑:
PullToRefresh.init({
mainElement: 'body',
onRefresh: function(){
refreshAll();
}
});
//无效
EDIT2: https://github.com/BoxFactura/pulltorefresh.js/blob/master/dist/pulltorefresh.js
答案 0 :(得分:7)
PullToRefresh.init()
会返回一个destroy()
函数作为回调的对象:https://github.com/BoxFactura/pulltorefresh.js/blob/master/dist/pulltorefresh.js#L326
var refresher = PullToRefresh.init({
mainElement: 'body',
onRefresh: function(){
refreshAll();
}
});
// destroy the PullToRefresh EventListeners when you open your popup
refresher.destroy()
还有一个开放的Github问题,关于在初始化后改进销毁这个库的方法:https://github.com/BoxFactura/pulltorefresh.js/issues/22
答案 1 :(得分:0)
IMO有两种合理的方法可以做到这一点。
您可以定义triggerElement
并将叠加层置于此triggerElement:
PullToRefresh.init({
mainElement: 'body',
triggerElement: '#mainContent',
onRefresh: refreshAll
});
标记有点像这样
<body>
<div id="containerForOverlays"></div>
<div id="mainContent"></div>
</body>
这样,#containerForOverlays
内的所有内容都不会触发刷新。
如果你的版本已经支持它,你可以使用新的钩子shouldPullToRefresh()
。
PullToRefresh
依赖于要检查的复选框的示例
<label><input id="refresh" type="checkbox"> Pull to Refresh?</label>
像
一样使用它PullToRefresh.init({
mainElement: 'body',
shouldPullToRefresh: function(){
return document.getElementById('pullToRefresh').checked
},
onRefresh: refreshAll
});
当然,我并不建议您在生产代码中使用复选框。我只想展示如何动态&#34;打开和关闭PullToRefresh
&#34; 。在此示例中,取决于要检查的复选框。
由您决定为您的应用程序实施正确的shouldPullToRefresh()
,以确定PullToRefresh
应该是否有效。