javascript - 当点击导航栏项目时,JQuery Mobile 在页面加载时做一些事情

标签 javascript jquery-mobile jquery-mobile-pageshow jquery-mobile-navbar

我有一个带有一些 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");
});

最佳答案

把这一行:

<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 讨论这个话题。在那里您会找到更好的描述以及一些带有示例的解决方案。仔细阅读。

关于javascript - 当点击导航栏项目时,JQuery Mobile 在页面加载时做一些事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17749395/

相关文章:

javascript - Laravel 5.5,更新 Logo 时 : Call to a member function getClientOriginalExtension() on string

javascript - Stripe RailsJS,无法向没有事件卡的客户收费

javascript - 将选定的文本设为变量并将其插入

windows-phone-7 - 在 Windows Phone 7 上的 PhoneGap 中包含本地 JavaScript

jquery-mobile - 隐藏Safari地址栏和页脚

jquery - 如何从jquery移动动态页面中的按钮获取事件

javascript - 在 Node.js 中,我如何加载我的模块一次,然后在整个应用程序中使用它们?

javascript - 当应用程序使用jquery mobile在cordova应用程序单页中加载页面时触发事件的最佳方式?

jquery - Swiper 在 Jquery Mobile 中不工作

jquery - jqplot 不适用于动态数据