2012-03-28 85 views
1

我正在尋找一個有點流暢的解決方案,在我的一個JQM頁面上有一個「頁內」對話框。我試圖避免離開頁面,因爲對話框彈出窗口是幫助用戶填充表單域的「查找」。我不想離開實際的頁面,所以不會丟失用戶已經輸入的任何其他信息。jQuery Mobile - 「頁內」對話框彈出

我的第一次嘗試是使用simpledialog2插件,我在站點的其他部分使用彈出式菜單。雖然它適用於基本鏈接,但它在較長的列表上變得非常笨重。當涉及尺寸和特別滾動時,感覺非常有限。

我有點喜歡內置的JQM實現對話框彈出式多選。給你一個想法,看看這個jsfiddle

有誰知道這個對話框彈出如何實現,如果我可以用某種方式調用相同的方法?如果沒有,有沒有人知道由於這樣的「頁內」對話而導致的替代方案?

任何幫助表示讚賞。

PS:我無法在JQM中使用多頁面模板,因爲該網站是作爲一個Web應用程序構建的,而且我依賴的是單頁面的AJAX加載,而多頁面模板不支持。

回答

5

您在jsfiddle中說明的對話框可以很容易地在其自己的頁面中調用。您可以將data-rel =「dialog」放置在錨標記<a href="dialog.html">dialog</a>中,或者您可以將data-role="dialog"添加到您的頁面容器中。下面是一個例子

dialog.html

<div data-role="dialog"> 
    <div data-role="header"> 
     <h1>Header</h1> 
    </div> 
    <div data-role="content"> 

    </div> 
    <div data-role="footer"> 
     <h1>Footer</h1>   
    </div> 
</div>​ 

還要注意的是它們在頁面對話框生產計劃,我相信你在JQM 1.2尋找。這是http://filamentgroup.com/tests/popup/docs/pages/popup/index.html的預覽。所以我想如果你真的耐心,你會得到你想要的。

+1

我知道我可以調用對話框作爲一個新的頁面,但是這將離開當前頁面,這是我想避免(在輸入的所有數據表單將會丟失)。然而,你的答案的第二部分正是我所期待的。我沒有太多時間等待,但我可能只是實施臨時解決方案並等待JQM 1.2的發佈。非常感謝提供信息。 – Steve 2012-03-28 22:33:24

+1

您可以通過向頁面容器添加data-dom-cache =「true」來保留dom中的上一頁。這樣你仍然可以使用JavaScript更新你的表單。 – codaniel 2012-03-28 22:47:15

+0

我不明白爲什麼對話框不能像彈出框一樣工作,因爲你不必更改頁面(並且丟失所有用戶的表單數據) – DavidVdd 2013-07-12 14:22:26

0

在這裏,您需要一個不可取消彈出而不是對話框。

<div data-dismissible="false" data-role="popup" id="myPopup"> 
    <span>Content...</span> 
</div> 
在javascript調用

現在,

$('#myPopup').popup().popup('open');