jquery mobile不会激活pageinit或准备好

时间:2013-09-06 12:18:29

标签: php javascript jquery ajax jquery-mobile

我有3个php页面,1个索引页面和2个其他子页面,它们在索引页面中有链接(销售和产品)。当我点击销售时,可以在pageintdocument ready加载销售数据,因为我在下面使用调试。

$('[data-role="page"]').live('pageshow', function () { <-- error line
    console.log("pageshow");
});

$(document).on('pageinit', function(){ 
console.log("pageinit");
});
$(document).ready(function(){

    console.log("docready");
})

当我点击索引页面中的链接时,没有任何代码触发,但是当页面加载并且我刷新时,我得到错误行指示的javascript错误

Object [object Object] has no method 'live' 

我正在使用

jquery.1.9.1.min.js
jquery.mobile.1.3.2.min.js

索引页面的html是

<div data-role="page" data-ajax="false" id="home">
    <?php include_once("header.php");?>
    <div data-role="content" data-theme="">    
        <ul data-role="listview" data-divider-theme="b" data-inset="true">
            <li data-role="list-divider" role="heading">Menu</li>
            <li data-transition="flip">
                <a href="outgoing.php" data-transition="slide" data-ajax="true">sales </a>
            </li>
            <li data-transition="flip">
               <a href="settings.php" data-transition="slide" data-ajax="true">products</a>
            </li>
            <li>
                <a href="../logout.php">Logout</a>
            </li>
    </ul><div data-role="navbar" data-iconpos="">
        </div>
    </div>
    <div data-role="footer" data-theme="b">
    <?php include_once("../footer.php");?></h4>
  </div>
</div>

我做错了什么?

修改

我更新了$('[data-role="page"]').on('pageshow', function () {的代码,但是除非我在满载后手动刷新页面,否则不会触发任何功能

2 个答案:

答案 0 :(得分:2)

我通过在加载不触发文档readey的页面的链接中设置data-ajax = false来解决问题,其余的

<a href="page.php" data-ajax="false">link</a>

谢谢

答案 1 :(得分:1)

不推荐使用

live,您必须在新版本的jquery中使用on函数。 live已弃用1.71.9已删除1.9.1。在使用on时,您必须使用$('[data-role="page"]').on('pageshow', function ()

{{1}}

version deprecated: 1.7, removed: 1.9