0

使用 jquery mobile 1.1.0 许多设备可以有不同的屏幕高度,以填补我正在做的空白空间: content_height = screen_height - header_height - footer_height

唯一真正等到所有内容都加载完毕才能计算实际高度的事件是

$(window).load

我的问题:因为我使用 ajax 导航系统,window.load 只会触发一次,并且我测试了许多负载分段事件:

$(document).bind('pagechange', func..)
$(document).bind('pageload', func..)

等等..

我的问题:是否有一个 jquery 移动事件会在每个页面加载时触发并且足够晚以加载大小?或在加载内容时触发方法的任何其他方式。

4

1 回答 1

0

小提琴:http: //jsfiddle.net/ca11111/CAtWG/

如果你想在页面完全加载时做一些事情:
在你的 html 中:

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

<script type="text/javascript">
$(document).bind("mobileinit", function(){
    //$.mobile.loadingMessageTextVisible = true;
    // set global config of jquery mobile here
});
</script>
<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
<script type="text/javascript"  src='test.js'></script>

然后放入你的 test.js 文件:

$("#Mypage1").live("pagecreate", function() {
     //do stuff when Mypage1 is created 
     // happens once if you don't explicitly refresh
      alert("Mypage1 created");
     $("#mydiv").height($("body").height() - 50);
});

$("#Mypage1").live("pageshow", function() {
     //do stuff when Mypage1 is shown
     // happens multiple times, as soon as you go to Mypage1 from other pages
     alert("Mypage1 visible");
});

您可能还在寻找方向更改事件,因此添加:

$(window).bind('orientationchange', _orientationHandler);

if(event.orientation){
    if(event.orientation == 'portrait'){
              //do something
    }
    else if(event.orientation == 'landscape') {
                //do something
    }
}

如果您触发了自己的 ajax 请求,并且想要修改 html,只需在回调中执行:

$("#Mypage1").trigger("pagecreate");
于 2012-06-24T07:34:01.083 回答