2013-03-27 100 views
4

我試過發佈這個問題之前,並沒有意識到當時我遇到的問題是來自使用jQuery 1.3.0庫。

我試圖創建一個沒有用戶交互的對話框在使用jQuery手機的頁面上。它適用於FireFox,但在所有的Webkit瀏覽器中都失敗,包括Safari,Mobile Safari和Chrome。

這裏的問題的例子:http://jsfiddle.net/fskirschbaum/2YTwE/

$.mobile.changePage('#dialog' , { transition:"pop", role:"dialog" }); 

我已經嘗試了幾種不同的方式讓這件事才能正常工作,我覺得我罵我的頭靠在牆上。如果你把庫的基礎改爲1.2.0,它就可以工作,所以它似乎是1.3.0的問題,但我沒有看到其他人似乎有這個問題。

編輯:我已經嘗試將這個附加到幾個事件沒有任何成功,包括:pagecreate,pageinit,pageload等。這似乎沒有幫助。我還要指出,這似乎是這個庫崩潰到另一個庫的問題,在只有jquery和jquery mobile的vanilla頁面上調用,我可以使用1.3庫來使用它,但不能在jsFiddle或我的環境中使用(我打電話給其他許多庫,比如jQueryUI和其他庫,我試圖調整它們被調用的順序。)

有沒有人有任何建議?

+0

嘗試將其綁定到事件,例如, (''pageshow',function(){$ .mobile.changePage('#dialog',{transition:「pop」,role:「dialog」}); }); $('#home' '。 – Omar 2013-03-27 22:09:16

+0

感謝您的建議,但我已嘗試將其綁定到幾個不同的事件而沒有成功。你可以在jsfiddle中使用webkit瀏覽器在我的帖子中鏈接,看看它不起作用。 – fskirschbaum 2013-03-28 02:10:35

回答

1

所以,它似乎與webkit渲染和某些其他庫的問題有關。

pageshow中包裝函數對我的環境不起作用,但是將它封裝在pagecreate did中,這是在createPage之後調用的事件。我還沒有確定爲什麼會發生這種情況,但它確實有效。

http://jsfiddle.net/fskirschbaum/pKw2A/

此解決方案,但是,在Firefox/Gecko渲染斷裂,因此,該功能需要被包裹在一個瀏覽器檢查,以得到它的工作。顯然,這不是最優雅的解決方案,但它是一個無與倫比的解決方案。

希望這會幫助其他人有相同的問題。

0

請致電$.mobile.changePage如下。

$(document).on('pageshow', '#home', function(){ 
    $.mobile.changePage('#dialog'); 
}); 
+0

然而,感謝您的建議,如果您使用上面的jsFiddle使用基於webkit的瀏覽器進行嘗試,您會發現它無法按預期工作。我試着用幾個事件調用這個方法,它根本不會觸發。 http://jsfiddle.net/fskirschbaum/ktM6Z/ – fskirschbaum 2013-03-28 13:48:44

+0

它在我的網絡工具包瀏覽器(chrome)中爲我工作,我將檢查小提琴爲什麼不在第一次加載。如果你導航到第二頁,並再次回到第一頁,那麼你可以看到它被解僱.... !!!! – 2013-03-28 14:34:52

+0

當你回到頁面時,我看到它會觸發,儘管這是我正在尋找的行爲。我還發現,我可以在用戶輸入時觸發這一點,這似乎是一個問題,當文檔初始化負載讓對話框在沒有用戶交互的情況下觸發時。 – fskirschbaum 2013-03-28 15:05:25

相關問題