我知道这个话题是众所周知的,但我发现的所有解决方案都不能解决我的问题。我试图为此创建一个小提琴,但似乎我不知道如何正确设置它:http: //jsfiddle.net/tMKD3/6/。我简化了代码以更简化地演示问题。
所以我在这里描述它,我希望它是可以理解的。我有一个 jQuery Mobile 页面和一个对话框。使用onMouseUp事件应该调用一个 javascript 函数,它会做一些事情并打开对话框。该对话框应保持打开状态,直到单击关闭按钮,然后再次显示开始页面。在我的情况下,对话框立即关闭。
这里的HTML代码:
<body>
<div data-role="page" id="start" data-theme="e">
<div data-role="header" data-position="fixed" data-theme="e">
<h1 id="startHeader"></h1>
</div>
<div data-role="content">
<a href="#page" id="buttonP1" onMouseUp="setup()" data-iconpos="right" data-role="button" data-prefetch data-mini="true"></a>
<a href="#page" id="buttonP2" onMouseUp="setup()" data-iconpos="right" data-role="button" data-prefetch data-mini="true"></a>
<a href="#page" id="buttonP3" onMouseUp="setup()" data-iconpos="right" data-role="button" data-prefetch data-mini="true"></a>
</div>
</div>
<!-- Dialog -->
<div data-role="dialog" id="dialog" data-theme="e">
<div data-role="header" data-theme="e" data-position="fixed" data-close-btn="none">
<h3 id="dialogHeader"></h3>
</div>
<div data-role="content" data-theme="e">
<a href="#start" type="button" data-role="button" id="dialogButton" data-rel="back"></a>
</div>
</div>
这里的javascript代码:
$(document).ready(function(){
// set button text
$("buttonP1").text("Test");
$("buttonP2").text("Test");
$("buttonP3").text("Test");
});
function setup() {
// set dialog header text
$("dialogHeader").text("Dialog");
$("dialogButton").text("Close");
// call dialog and the dialog should stay opened until the close button is pressed
$.mobile.changePage('#dialog', {
transition: 'pop',
role: 'dialog'
});
return false;
// after calling the dialog I do some additional stuff like reset some counters and so on
}
在类似的文章中,我发现问题是忘记返回 false;,但在这里它没有帮助。有人知道我做错了什么以及错误在哪里吗?
非常感谢您的帮助。
问候,托马斯