如何检测/查询jQuery Mobile(jQM)中当前是否正在进行更改/转换?
我的目标是在当前正在进行页面切换时阻止打开对话框。目前,在更改页面事件正在进行时打开对话框时,UI会中断。
有关于此的任何想法吗?
答案 0 :(得分:2)
在JQM 1.4.0中,类ui-mobile-viewport-transitioning
在转换期间添加了body
标记,因此以下内容适用于我:
if (!$("body.ui-mobile-viewport-transitioning").length) {
//do something
}else{
console.log("Don't do it we are transitioning")
return false
}
答案 1 :(得分:1)
在转换开始之前,在显示的页面上触发。
在过渡开始之前,在被隐藏的页面上触发。
在转换完成后,在显示的页面上触发。
在过渡完成后,在被隐藏的页面上触发。
答案 2 :(得分:0)
我没有在jQuery Mobile中找到转换状态信息,但是您可以简单地添加三个事件,一个在更改之前,一个在更改之后,另一个用于页面更改失败时。然后,保持全局变量是否正在发生转换:
window.transitioning = false;
$(document).on("pagebeforechange", function() { transitioning = true; });
$(document).on("pagechange", function() { transitioning = false; });
$(document).on("pagechangefailed", function() { transitioning = false; });
在这个例子中,我创建了一个全局变量transitioning
但你可以在你认为合适的地方创建这个变量,例如:在对话框处理程序中创建局部变量而不是使用全局变量。
您现在可以像这样添加条件:
if(!transitioning) {
// Do your stuff
} else {
// Delegate the events by listening for pagechange and then do your stuff
}