1

ユーザーがユーザー名とパスワードを入力するためのダイアログ ボックスとして、インデックス ファイルを用意しています。ページは正常に動作しますdata-role="pageが、ダイアログとして表示され、すぐに消えます。基本的に画面に点滅しますが、その理由はわかりません。私のコードは以下の通りです:

HTML

<body onload="init()">

<div id="home">

    <div id="launcherPage" data-role="page">
        <!-- I'm just here waiting for deviceReady -->
    </div>


    <div data-role="dialog" id="loginPage">

        <div data-role="header">
          <h1>CHUNE</h1>
        </div>

        <div data-role="content">    

            <form id="loginForm">
            <div data-role="fieldcontain" class="ui-hide-label">
                <label for="username">Username:</label>
                <input type="text" name="username" id="username" value="" placeholder="Username" />
            </div>

            <div data-role="fieldcontain" class="ui-hide-label">
                <label for="password">Password:</label>
                <input type="password" name="password" id="password" value="" placeholder="Password" />
            </div>

            <input type="submit" value="Login" id="submitButton">
            </form>
            <div style="text-align: center;">Or</div> <!--need to center-->
            <a href="./register.html" data-role="button">Register</a>

        </div>

        <div data-role="footer">
            <h4>&copy; KewsPlus</h4>
        </div>

    </div>

jQuery

function deviceReady() {
console.log("deviceReady");
$("#loginPage").on("pageinit",function() {
    console.log("pageinit run");
    $("#loginForm").on("submit",handleLogin);
    checkPreAuth();
});
$.mobile.changePage("#loginPage");
4

1 に答える 1

1

読み込み時にダイアログをプログラムで開くには、タイムアウトを設定して、開く前にページが DOM に完全に読み込まれるようにする必要があります。

$(document).on('pageshow', '#myPage' ,function () {
 setTimeout(function () {
  $.mobile.changePage('#dialog');
 }, 100); // delay above zero
});

同様の問題

于 2013-04-21T06:50:03.193 に答える