如何在一个html文件中为所有页面设置全局(通用)弹出窗口?
我试试这个。但没有工作......
<div data-role="page" id="home"></div>
<div data-role="page" id="news"></div>
<div data-role="page" id="details"></div>
<div data-role="popup" id="settings" data-corners="false" data-theme="none" data-shadow="false" data-tolerance="0,0"></div>
答案 0 :(得分:21)
Documentation表示如果将其声明为body元素的直接子元素,则可以在多个页面上重复使用相同的弹出窗口。然后它可以出现在文档的任何页面上:
<div id="popup-outside-page" data-theme="a">
<!-- This popup has its theme explicitly defined via data-theme="a"
because it has no parent from which to automatically inherit
its theme -->
<ul data-role="listview">
<li>Global Menu</li>
<li><a href="#demo-intro">Intro Page</a></li>
<li><a href="#other-page">Other Page</a></li>
<li><a href="#third-page">Third Page</a></li>
</ul>
</div>
<div id="other-page" data-role="page" data-url="other-page">
<div data-role="header">
<a href="#popup-outside-page" data-rel="popup">Menu</a>
<h1>Another Page</h1>
</div>
<div role="main" class="ui-content">
<p>This is another page that can be reached using the links in the global menu.</p>
</div>
</div>
<div id="third-page" data-role="page" data-url="third-page">
<div data-role="header">
<a href="#popup-outside-page" data-rel="popup">Menu</a>
<h1>Third Page</h1>
</div>
<div role="main" class="ui-content">
<p>This is a third page that can be reached using the links in the global menu.</p>
</div>
</div>
如果在任何页面之外定义弹出窗口,则必须注意自己实例化弹出窗口小部件。您可以早在DOMReady中执行此操作,因为弹出窗口不在任何页面上:
// Instantiate the popup on DOMReady, and enhance its contents
$( function() {
$( "#popup-outside-page" ).enhanceWithin().popup();
});
如果您希望从一组链接打开弹出窗口,那么您还必须手动处理,因为通过 data-rel =“popup”的自动处理仅限于活动的弹出窗口页。
简短的回答是,你做不到。 documentation表示:
弹出式div必须与链接
嵌套在同一页面内
所以你必须将弹出窗口复制并粘贴到你希望它出现的每个页面上,这听起来不是一个好的解决方案。
当我需要一些行为像全局弹出窗口的东西时,我通常会使用dialog,可以从任何页面打开。
对话框本身与页面具有相同的结构:
<div id="diag" data-role="dialog">
<div data-role="header" data-theme="d">
<h1>Info</h1>
</div>
<div data-role="content" data-theme="c">
<h1>Thank you for your time!</h1>
<a data-role="button" data-rel="back">Ok</a>
</div>
</div>
你可以以编程方式打开它:
$.mobile.changePage("#diag");
或者点击按钮作为任何其他jQuery移动页面:
<a href="#diag" data-role="button" data-rel="dialog" data-theme="a">Open dialog</a>
答案 1 :(得分:-2)
看看这个回复
https://stackoverflow.com/a/12092465/591254
有一个插件可以帮助你,而jquery移动团队添加对他们使用的页面外定义的弹出窗口的支持。请注意,现场演示不起作用,但在本地并替换它工作的jquery js。
这是jqm请求:
https://github.com/jquery/jquery-mobile/issues/4565
显然可以在jqm 1.4中添加