jQuery 移动错误 - 无法调用未定义的方法"触发器"



我在jQuery Mobile中得到以下错误信息:

不能调用未定义的方法'trigger'

在jQuery.mobile.js中的第2836行,如下所示:

mpc.trigger( "beforechangepage" );

我的代码是这样的:

<script type="text/javascript" src="js/jquery.min.js"></script> 
<script type="text/javascript" src="js/jquery.mobile.js"></script>
    <script type="text/javascript" src="js/app.js"></script>
    <title></title>
</head>
<body>
<!-- Application -->
<div data-role="page" id="application" data-theme="f" >
    <div data-role="header">
        <h1>header</h1>                     
    </div><!-- /header -->
    <div data-role="content">
        <ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="f">
        <li><a href="#" data-icon="arrow-r">test1</a></li>
        <li><a href="#" data-icon="arrow-r">test2</a></li>
            <li><a href="#" data-icon="arrow-r">test3</a></li>
        </ul>
    </div><!-- /content -->
    <div data-role="footer">
        <h1>footer</h1>
    </div>
</div><!-- /page -->

<!-- Login -->
<div data-role="page" id="login" data-theme="f">
    <div data-role="header">
        <h1>header</h1>
    </div><!-- /header -->
    <div data-role="content">
        <ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="f">
        <li><a href="#" data-icon="arrow-r">test1</a></li>
        <li><a href="#" data-icon="arrow-r">test2</a></li>
            <li><a href="#" data-icon="arrow-r">test3</a></li>
        </ul>
    </div><!-- /content -->
    <div data-role="footer">
        <h1>footer</h1>
    </div><!-- /content -->
</div><!-- /page -->

在app.js中,我有以下代码:

$(document).ready(
    function () {
        $.mobile.changePage( $('#login') );
})

我得到的只是一个空白的屏幕和我上面提到的错误。

感谢您的帮助。

认为,

我在OS x上测试我的移动站点时遇到了类似的情况。为了解决这个问题,我不得不绑定到pagecreate事件,而不是仅仅依赖于$(document).ready()。在我尝试使用$.mobile.changePage()之前,站点上的其他所有内容都可以在没有绑定pagecreate的情况下工作。

$().ready(function() {      
    console.log("Document is ready.");
    $('#home').live('pagecreate', function(event) {
        DoStuff();
    });
});
DoStuff() {
    if(!CheckCredentials())
        $.mobile.changePage('#login');
    else {
        // Rest of code...
    }
}

他们在他们的文档中明确说明了这一点,我最初没有注意到。

最新更新