2012-12-19 59 views
2

我剛剛開始以任何嚴肅的方式使用新的jQM 1.2彈出式功能,並遇到許多奇怪的問題。我需要從腳本打開我的彈出窗口,而不是通過data-rel ='popup'點擊。 「簡單」,我想 - 簡單地把彈出式元素放在data-role設置爲'popup'的彈出式元素中,然後從腳本中打開它作爲element.popup('open')。我試圖只讓jQM抱怨jQuery Mobile Popup困境

未捕獲錯誤:在初始化之前無法調用彈出方法;試圖調用方法「開放」

所以我想我根本就沒有使用數據角色可言,設置元素樣式爲display:none和後來乾脆

element.popup()的CSS(。 'display':'block')。popup('open')from script where required。這在第一次就像魅力一樣。然後,當我嘗試重新打開彈出窗口時 - 沒有彈出窗口!我想這可能是與過這樣兩次初始化彈出我改變了我的代碼

if ('undefined' == typeof(element.data('ppp')) 
element.popup().css('display','block').data('ppp',1); 

其次

element.popup('open') 

仍然沒有喜悅 - 這似乎是彈出忘記它的數據屬性一次它已被關閉

任何幫助,這將是非常讚賞 - 基本上我想要做的是打開和關閉彈出幾次從腳本。

回答

6

有一個非常簡單的答案。嘗試訪問彈出式元素以便通過其虛擬類聲明(在此實例中爲ppp)定位它來打開它,將永遠不會工作。如果你想找到一個彈出窗口,你必須給它一個ID。沒有ID,沒有辦法在彈出窗口。當你看到jQM在看到data-role ='popup'時產生的代碼時,這就變得很清楚了。代替原來的彈出定義它的葉子含有很少超過

<div> 
<!--Placeholder for popupid--> 
<div> 

在頁面底部的空DIV標籤的背後,其中彈出的最初定義它把兩個新的div

<div class='ui-popup-screen ui-screen-hidden' id='popupid-screen'></div> 
<div class='ui-popup-container ui-selectmenu-hidden' id='popupid-popup'>..</div> 

最初定義的彈出窗口的所有內容都被移動到後面的div中。不要爲原始彈出窗口提供一個id,並且通過jQuery以任何有用的方式訪問它的機制只是簡單地分解。