TypeError:$ .mobile.activePage未定义

时间:2014-02-17 12:36:00

标签: jquery jquery-mobile

嗨朋友我是jQuery mobile的新手,并使用它开发网站。我创建了一个函数来控制页面高度,当窗口高度工作正常时,但是当我跳到其他页面时它停止工作并给出错误

TypeError: $.mobile.activePage is undefined 

我不知道metter需要你帮助解决这个问题

请帮帮我们。您可以查看我的代码

已使用的图书馆

<script src="js/jquery-1.10.2.min.js" type="text/javascript" language="javascript"></script>
<script src="js/jquery.mobile-1.4.0.min.js" type="text/javascript" language="javascript"></script>
<script src="js/modernizr-2.6.1.min.js" type="text/javascript" language="javascript"></script>
<script src="js/script.js" type="text/javascript" language="javascript"></script>

SCRIPT

var header_height  = $.mobile.activePage.children('[data-role="header"]').height(),
            footer_height  = $.mobile.activePage.children('[data-role="footer"]').height(),
            window_height  = $(this).height(),
            content_height = window_height - header_height - footer_height;

            $.mobile.activePage.children('[data-role="content"]').children('.contentMain').height(content_height-130).css('overflow','auto');

            $('#left-menu').height(window_height).css('overflow','auto');

请帮助我们......提前致谢

2 个答案:

答案 0 :(得分:1)

正如Jai所说,

对于jQuery mobile,$(document).ready()和设备就绪不一样。

加载jQuery需要比文档更多的时间。

你应该这样做:

$(function() {
document.addEventListener('deviceready', onDeviceReady, false);
//for testing in Chrome browser uncomment
//onDeviceReady(); });

并且

    function onDeviceReady() {
                var header_height  = $.mobile.activePage.children('[data-role="header"]').height(),
                footer_height  = $.mobile.activePage.children('[data-role="footer"]').height(),
                window_height  = $(this).height(),
                content_height = window_height - header_height - footer_height;

                $.mobile.activePage.children('[data-role="content"]').children('.contentMain').height(content_height-130).css('overflow','auto');

                $('#left-menu').height(window_height).css('overflow','auto');
}

此外,不推荐使用activePage。 你可以用

$( ".selector" ).pagecontainer( "getActivePage" );

来源:http://api.jquerymobile.com/pagecontainer/#method-getActivePage

答案 1 :(得分:1)

你可以获得id&amp;访问了jquery页面,如下所示

$(document).live('pageshow', function (event, ui) {
        var pageId = "";
        try{
            pageId = $.mobile.activePage.attr('id');  //Get the page id 
        } catch (e) { }
        if (typeof (pageId) == 'undefined' && pageId == "")
            pageId = event.target.id;

}