|
当FrameGroup 和 navigationBar 同时存在时,滑动切换FrameGroup 的同时要设置navigationBar 的选中状态;点击navigationBar 的item时,要切换到相应的FrameGroup 。由于这两个操作都会导致对方的回调,造成回调死循环。所以我们要做2个开关,来阻止回调死循环
var NavigationCallBackEnable = false;
var FrameGroupCallBackEnable = false;
navigationBar 的 CallBack
function callback(ret, err) {
if (ret) {
if (NavigationCallBackEnable) {
FrameGroupCallBackEnable = false; // 当点击NavigationBar的item时,阻止 FrameGroup 回调
api.setFrameGroupIndex({
name: 'prod-list-frameGroup',
index: ret.index,
scroll: false
});
}
}
NavigationCallBackEnable = true; // 加载完后 允许 点击 NavigationBar的item时,进行FrameGroup的切换
return;
}
FrameGroup 的 CallBack
function CallBack(ret , err){
if (ret) {
var name = ret.name;
var index = ret.index;
if (FrameGroupCallBackEnable) {
NavigationCallBackEnable = false; // 当FrameGroup滑动切换时,阻止 NavigationBar回调
navigationBar.config({ key: "selectedIndex", value: index });
}
FrameGroupCallBackEnable = true; // 加载完后 允许 FrameGroup滑动切换时,进行NavigationBar中item的选中状态切换
}
} |
|