jQuery Mobile对话框立即关闭

时间:2013-08-23 09:14:15

标签: javascript jquery-mobile

我知道这个话题众所周知,但我发现的所有解决方案都无法解决我的问题。我试图为此创建一个小提琴,但似乎我没有正确设置它的专有技术: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
}

在类似的文章中,我发现问题是遗忘的 return false; ,但这里没有帮助。有人知道我做错了什么,错误在哪里?

非常感谢您的帮助。

问候, 托马斯

1 个答案:

答案 0 :(得分: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>