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">

或在正文标签结束后

像这样 :

 <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 之前调用。您可以使用许多其他事件,例如等。有关更多信息pagebeforeshowpagecreate请查看 jQuery Mobile文档

确保你没有使用$(doucment).ready(function(){});

于 2013-03-19T10:27:19.207 回答