我有一个带有一些nabars的页面,当点击“我的活动”导航栏时,我希望它在加载时执行某些操作,并且目前出于测试目的,我只是尝试在加载时向屏幕提醒消息,但是因为它是一个被调用的js文件我不确定,使用什么Jquery移动加载功能?
这是我的页面的html:
<html>
<head>
<title>My Activity</title>
<meta name="viewport" charset="UTF-8" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css"/>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
<script type="text/javascript" src="http://www.modernizr.com/downloads/modernizr-latest.js"></script>
<style>
</style>
</head>
<body>
<div data-role="page">
<div data-role="header" data-id="pagetabs" data-theme="a" data-position="fixed">
<div data-role="navbar">
<ul>
<li><a href="fb_feed.html" data-prefetch="true" rel="external" data-icon="custom">Facebook</a></li>
<li><a href="youtube_feed.html" data-prefetch="true" rel="external" data-icon="custom">YouTube</a></li>
<li><a href="my_activity.html" id="my_activitypage" data-prefetch="true" data-icon="custom" class="ui-btn-active ui-state-persist">My Activity</a></li>
</ul>
</div>
</div>
</div>
<div data-role="footer" data-theme="a" data-position="fixed"><h5>Social Stream</h5></div>
</div>
<script src="my_activity.js"></script>
</body>
</html>
在我的my_activity.js文件中,我尝试了不同的页面加载功能。我尝试了以下操作,只有在您手动刷新浏览器时才会被触发,单击导航栏选项卡时不会被触发
$(document).on('pageinit', '[data-role="page"]', function(){
alert("hello");
});
答案 0 :(得分:2)
把这一行:
<script src="my_activity.js"></script>
在页面div中,如下所示:
<div data-role="page">
<div data-role="header" data-id="pagetabs" data-theme="a" data-position="fixed">
<div data-role="navbar">
<ul>
<li><a href="fb_feed.html" data-prefetch="true" rel="external" data-icon="custom">Facebook</a></li>
<li><a href="youtube_feed.html" data-prefetch="true" rel="external" data-icon="custom">YouTube</a></li>
<li><a href="my_activity.html" id="my_activitypage" data-prefetch="true" data-icon="custom" class="ui-btn-active ui-state-persist">My Activity</a></li>
</ul>
</div>
</div>
<div data-role="footer" data-theme="a" data-position="fixed"><h5>Social Stream</h5></div>
<script src="my_activity.js"></script>
</div>
您遇到了经典的jQuery Mobile问题。本主题不作为官方文档的一部分进行讨论,因此我将尝试向您解释。
当jQuery Mobile加载其他HTML页面时,它只加载页面div( data-role="page"
=,其他所有内容都被删除。这是因为HEAD已经存在于DOM中而另一个HEAD不需要同样适用于页面的其余部分。
如果您想了解更多相关信息,请查看讨论此主题的博客 ARTICLE 。在那里,您会找到更好的描述以及一些带有示例的解决方案仔细阅读。