2012-03-28 89 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');