jquery移动加载事件,它等于时间轴上的window.load事件

时间:2012-06-23 19:02:07

标签: javascript jquery ajax events jquery-mobile

使用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移动事件会在每个页面加载时启动,并且足够晚才能加载大小?或者在加载内容时对方法进行任何其他方式。

1 个答案:

答案 0 :(得分: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");