0

使用しようとしています$.mobile.changePageが、機能しません。これが私のコードです

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">    
         <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css">
         <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
         <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
    </head>
    <body>
        <div data-role="page" id="p1">
            <div data-role="header"><h2>DKT</h2></div>
            <div data-role="content">
                <div id="sw1"></div>
                <div id="sw2"></div>
            </div>
            <div data-role="footer">...</div>
        </div>
        <script>
            $.mobile.changePage("#qu");
        </script>
        <div data-role="page" id="qu">
            <div data-role="header"><h2>DKT</h2></div>
            <div data-role="content">
                <fieldset class="ui-grid-a">
                    <div class="ui-block-a"><button>Nein</button></div>
                    <div class="ui-block-b"><button>Kaufen</button></div>
                </fieldset>
            </div>
        </div>
    </body>
</html>

すでにエラーが発生していますTypeError: 'undefined' is not an object (evaluating 'i.trigger')

私はすでに「 http://www.google.com 」に変更しようとしました:それでも同じエラーが発生します

編集:

ありがとうございます。しかし、問題は実際には私のコードの別の部分にありました。

4

3 に答える 3

1

次のように、jquery コードをdocument.readyハンドラーで囲みます。

$(document).ready(function() {
   $.mobile.changePage("#qu");
});

そうしないと、DOM をロードする時間がないため、#qu要素を取得しようとしても要素が存在しません。

于 2013-03-19T09:25:45.203 に答える
0

後にスクリプトを追加

 <div data-role="page" id="qu">

OR body タグの終了後

このような :

 <script>
             $.mobile.changePage("#qu");
         </script>
于 2013-03-19T09:26:22.183 に答える
0

以下のようにコードを変更します

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">    
         <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css">
         <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
         <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
    </head>
    <body>
        <div data-role="page" id="p1">
            <div data-role="header"><h2>DKT</h2></div>
            <div data-role="content">
                <div id="sw1"></div>
                <div id="sw2"></div>
            </div>
            <div data-role="footer">...</div>
        </div>
        <script>
            $('#p1').live('pageshow', function(event){
                $.mobile.changePage("#qu");            
            });
        </script>
        <div data-role="page" id="qu">
            <div data-role="header"><h2>DKT</h2></div>
            <div data-role="content">
                <fieldset class="ui-grid-a">
                    <div class="ui-block-a"><button>Nein</button></div>
                    <div class="ui-block-b"><button>Kaufen</button></div>
                </fieldset>
            </div>
        </div>
    </body>
</html>

コードで$.mobile.changePage("#qu");は、dom が開始される前に呼び出されます。pagebeforeshowなど、他の多くのイベントを使用できます。詳細についてpagecreateは、jQuery Mobile のドキュメントを確認してください。

$(doucment).ready(function(){});同様に使用していないことを確認してください。

于 2013-03-19T10:27:19.207 に答える