我开始使用jquery mobile开发我的第一个移动应用程序。 到目前为止它一直很顺利,但我无法解决特定的弹出行为。
用户加载应用后,我想要一个弹出窗口显示的内容。此弹出窗口应类似于您在许多应用中看到的添加到主弹出窗口。它旨在通过一些重要按钮将用户指向固定页脚。我设法插入此弹出窗口并在页面加载时打开它,但有两件事我无法做到。
我的弹出窗口加载和消失,这是我想要的,这一切都没问题。但是,一旦您重新加载页面,或导航到另一个页面并返回,它将再次打开。这对用户来说很烦人。我希望它只在你第一次加载主页时打开。
我想将弹出窗口放在页脚上方,不要超过它,而是放在上面。我该怎么做?我是否使用x和y,如果是,如何使用?
除了页脚之外,叠加效果是否有办法遮盖整个页面?
谢谢。
以下是代码:
<div data-role="page" id="home">
<div data-position="fixed" data-role="header" data-theme="d">
<h1>Prva pomoć</h1>
<button data-icon="info" data-iconpos="right"></button>
</div>
<div data-role="content">
<ul data-role="listview" data-divider-theme="d">
<li data-role="list-divider">Ne reagira i ne diše
</li>
<li><a href="#page2">Oživljavanje</a></li>
<li><a href="#page3">Oživljavanje + AVD</a></li>
<li data-role="list-divider">Ne reagira, ali diše</li>
<li><a href="#page4">Bočni položaj</a></li>
<li data-role="list-divider">Ostalo</li>
<li><a href="#page4">Gušenje</a></li></ul></div>
<div id="popspot"></div>
<div data-role="popup" id="popup" data-transition="slidedown" data-position-to="#popspot" data-theme="a" data-overlay-theme="e" data-history="true">
<p>U slučaju hitnoće koristi ovaj izbornik!<p></div>
<script type="text/javascript" language="JavaScript">
$(":jqmData(role='page'):last").on("pageshow", function(event) {
$("#popup", $(this)).popup("open");
setTimeout(function(){
$("#popup").popup("close");
}, 3000);
});
</script>
<div data-role="footer" id="hitnizbor" data-position="fixed" class="nav-glyphish-example">
<div class="nav-glyphish-example" data-grid="b" data-role="navbar" data-theme="e">
<ul>
<li><a href="#popup" data-rel="popup" id="chat" data-icon="custom">Zovi Hitnu</a></li>
<li><a href="#" id="email" data-icon="custom">Oživljavanje</a></li>
<li><a href="#" id="skull" data-icon="custom">Osobni podaci</a></li>
</ul>
</div>
答案 0 :(得分:0)
您可以使用sessionStorage或localStorage来跟踪与是否显示弹出窗口相关的信息。
您的代码将如下所示
if (localStorage.popUpShown != 'true') {
// window will position the pop up to center
$('#popup').popup('open', {positionTo: 'window'});
localStorage.popUpShown = 'true';
setTimeout(function () {
$("#popup").popup("close");
}, 3000);
}
else{
// Can remove this alert in development enviornment.
alert('already shown the popup');
}
您可以在此处查看 live fiddle http://jsfiddle.net/mayooresan/MyaE9/
还对你的HTML进行了一些调整。你的html页面中有标记错误。
<div data-role="page" id="home">
<div data-position="fixed" data-role="header" data-theme="d">
<h1>Prva pomoć</h1>
<button data-icon="info" data-iconpos="right"></button>
</div>
<div data-role="content">
<ul data-role="listview" data-divider-theme="d">
<li data-role="list-divider">Ne reagira i ne diše</li>
<li><a href="#page2">Oživljavanje</a>
</li>
<li><a href="#page3">Oživljavanje + AVD</a>
</li>
<li data-role="list-divider">Ne reagira, ali diše</li>
<li><a href="#page4">Bočni položaj</a>
</li>
<li data-role="list-divider">Ostalo</li>
<li><a href="#page4">Gušenje</a>
</li>
</ul>
<div id="popspot"></div>
<div data-role="popup" id="popup" data-transition="slidedown" data-position-to="#popspot" data-theme="a" data-overlay-theme="e" data-history="true">
<p>U slučaju hitnoće koristi ovaj izbornik!</p>
</div>
</div>
<div data-role="footer" id="hitnizbor" data-position="fixed" class="nav-glyphish-example">
<div class="nav-glyphish-example" data-grid="b" data-role="navbar" data-theme="e">
<ul>
<li><a href="#popup" data-rel="popup" id="chat" data-icon="custom">Zovi Hitnu</a>
</li>
<li><a href="#" id="email" data-icon="custom">Oživljavanje</a>
</li>
<li><a href="#" id="skull" data-icon="custom">Osobni podaci</a>
</li>
</ul>
</div>