2012-07-16 23 views
0

我正在爲Android手機構建PhoneGap應用程序。我用這樣的機制讓用戶將數據提交到Web服務:slideDown在PhoneGap中可見slideDown之前觸發

$('#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 s是個好主意)?還是這是完全不同的,我現在還不知道?

jQuery的版本是1.7.1,的PhoneGap /科爾多瓦的版本是1.9.0

回答

2

您的代碼看起來正確。確認應等到滑動動畫完成後再顯示。

但我想會發生什麼事情是動畫渲染是如此糟糕,slideUp功能是完整的,但尚未顯示給用戶。然後confirm出現並停止執行。

Javascript動畫已知在移動設備上很糟糕,令人沮喪。特別是在較舊的設備中,它們是無法忍受的。您可以嘗試使用CSS3動畫。有一個名爲jQuery Transit的jQuery插件,它與jQuery的animate函數具有相同的語法,但使用CSS3作爲動畫。

另一個建議:如果你使用的是Phonegap,你可能更喜歡navigator.notification.confirm而不是舊的confirm,因爲它使用設備的本地確認對話框(更好的用戶體驗)並且它是非阻塞的。

+0

這正是我認爲正在發生的事情。我會看看這個插件,乍看起來很完美。我想我必須使用提示,因爲確認不會讓用戶獲取數據。謝謝 – m90 2012-07-16 16:07:34

+0

哦,對不起,你說得對。 Phonegap現在沒有原生提示功能。我誤解了你的問題。 – keune 2012-07-16 16:15:20