2013-07-18 46 views
1

我一直在Google上搜索这几天,虽然有很多类似的线程,但答案仍然没有回答。我已经削减下来的问题是:jquery mobile 1.3.1 padding-top错误地计算初始页面加载

<div data-role="header" data-id="myHeader" data-theme="none" data-position="fixed"> 
     <img src="images/my1200x150logo.jpg"/> 
</div><!-- /header --> 

<div data-role="content"> 
    <p>Content line 1</p> 
    <p>Content line 2</p> 
    <p>Content line 3</p> 
    <p>Content line 4</p> 
    <p>Content line 5</p> 
</div><!-- /content --> 

<div data-role="footer" data-id="myFooter" data-theme="c" data-position="fixed"> 
    <h4>My footer</h4> 
</div><!-- /footer --> 

我试图实现与标志图像尺寸调整到适合页面一个RWD效果。除了初始页面加载之外,这一切都可以很好地工作,这会在jqm updatePagePadding例程中将填充顶部设置为零,从而导致内容在图像下向上流动。

我知道在js运行后加载几个小时的图像,这是一个常见问题。任何事件(如页面调整大小)都会导致填充更新正确。

所以我的问题是,我的图像加载完成后,如何强制JQM调用updatePagePadding

回答

0

Jquery pageshow event? link to the API

基本上jQuery将触发页面加载后一个事件,元素随时可以等待该事件,然后打电话给你的功能,例如:

$("#pageID").on("pageshow",function(){ 
    updatePagePadding(); 
}); 

还检查这对完整的参考什么事件绑定到每个jquery移动页面,page widget API

+1

感谢您的回复。如果我把脚本放在头部,它永远不会被执行。如果我把它放在body部分的末尾,我得到ReferenceError:updatePagePadding没有定义 – user2593663

+0

你不能把脚本放在头部,jquery mobile不加载头标签,它只在index.html加载头标签,其他页面放您的JavaScript内部

abdu

+0

对不起,很厚。我读过其他地方把jquery和jquery.mobile脚本放在head标签中。我按照你的建议做了,现在得到$ undefined。你介意发布我应该使用的页面结构来实现我想要的内容吗?这样一切都按正确的顺序加载?我非常感谢你的帮助。 – user2593663