2

我知道这个话题是众所周知的,但我发现的所有解决方案都不能解决我的问题。我试图为此创建一个小提琴,但似乎我不知道如何正确设置它: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;,但在这里它没有帮助。有人知道我做错了什么以及错误在哪里吗?

非常感谢您的帮助。

问候,托马斯

4

1 回答 1

1

您可以为此设置超时:

 <script>

 $(document).ready(function(){

// set button text
$("#buttonP1").text("Test");
$("#buttonP2").text("Test");
$("#buttonP3").text("Test");

});

 function setup() {

// set dialog header text
   $("#dialogHeader").html("Dialog");
  $('#dialogButton').html('Close');

    // call dialog and the dialog should stay opened until the close button is pressed 
    setTimeout(function () {
     $.mobile.changePage('#dialog', {
     transition: 'pop',
      role: 'dialog'
   });
  }, 100);
    return false;

    // after calling the dialog I do some additional stuff like reset some counters and    so on
 }
</script>
于 2013-08-23T09:31:49.557 回答