slideDown中的slideDown-callback触发在PhoneGap中可见

时间:2012-07-16 15:20:37

标签: javascript jquery cordova prompt

我正在为Android手机构建PhoneGap-App。我使用这样的机制让用户将数据提交给Web服务:

$('#backdrop').slideDown('fast',function(){
  var data = prompt('Please enter your data');
  if (data){
    //process data
  } else {
   //go on
  }
});

然而,在我的手机上进行测试时,有时(在我猜的大约80%的情况下)提示之前 $('#backdrop')元素实际可见并等待对于要显示的元素,直到提示消失(由于其阻塞性质)。

我觉得这可能是因为我真的老而慢的手机(HTC Wildfire S 600MHz),但我可能不是唯一一个有旧手机和慢手机的手机,所以不错知道是否有办法解决这个问题。

我是否可以通过jQuery-means实际修复此问题,或者这是否意味着我无法使用标准提示并且必须自己构建一些内容(根本不使用prompt)?或者这是我现在不知道的完全不同的东西?

jQuery版本是1.7.1,Phonegap / Cordova版本是1.9.0

1 个答案:

答案 0 :(得分:2)

您的代码看起来正确。确认应该等到幻灯片动画完成,然后显示。

但我猜想发生的事情是动画渲染非常糟糕,slideUp功能已完成但用户尚未看到。然后confirm出现并停止执行。

众所周知,Javascript动画在移动设备上很糟糕,而且气馁。特别是在旧设备中,它们难以忍受。您可以尝试使用CSS3动画。有一个名为jQuery Transit的jQuery插件,它与jQuery的animate函数具有相同的语法,但使用CSS3进行动画制作。

另一个建议:如果您使用Phonegap,您可能更喜欢navigator.notification.confirm而不是旧的confirm,因为它使用设备的本机确认对话框(更好的用户体验)并且它是非阻塞的。< / p>