`

JQM:如何点击footer中的navbar只切换content的内容

阅读更多
在JQM运用中想固定Header与Footer,当然Footer有个NavBar导航菜单,
<div data-role="page">
 <div data-role="header">header</div>
  <div data-role="content">这里是内容</div>
  <div data-role="footer">footer</div>
</div>

格式如上,点击相应的结构菜单的时候希望它只替换
<div data-role="content"> .......        </div>
中的内容,然而它却是以页面的形式替换了整个一个"Page"。

关于这个问题,其实并没有很好的解决办法,这我估计是html的通病。

我google了一下(不要baidu,baidu估计搜索不到类似的问题),老外的解决办法其实和我之前的办法一样,就是在每个page中都重复写一个navbar,具体见下面的html:
<div id="home" data-role="page">
    <div data-role="header">
        <h1>Home</h1>
    </div>


    <div data-role="content">
        <p>
            <a href="#page-1">Page 1</a>
        </p>
    </div>
</div>

<div id="page-1" data-role="page">
    <div data-role="header">
        <a href="#" data-icon="arrow-l" data-iconpos="left" data-rel="back" data-transition="slide" data-direction="reverse">Back</a>
        <h1>Page 1</h1>
    </div>
    <div data-role="content">
        <p>Page 1 content</p>
    </div>
    <div data-role="footer" data-position="fixed">
        <div data-role="navbar">
            <ul>
                <li><a href="#page-1" data-role="tab" data-icon="grid" class="ui-btn-active">Page 1</a></li>
                <li><a href="#page-2" data-role="tab" data-icon="grid">Page 2</a></li>
                <li><a href="#page-3" data-role="tab" data-icon="grid">Page 3</a></li>
            </ul>
        </div>
    </div>
</div>

<div id="page-2" data-role="page">
    <div data-role="header">
        <a href="#" data-icon="arrow-l" data-iconpos="left" data-rel="back" data-transition="slide" data-direction="reverse">Back</a>
        <h1>Page 2</h1>
    </div>
    <div data-role="content">
        <p>Page 2 content</p>
    </div>
    <div data-role="footer" data-position="fixed">
        <div data-role="navbar">
            <ul>
                <li><a href="#page-1" data-role="tab" data-icon="grid">Page 1</a></li>
                <li><a href="#page-2" data-role="tab" data-icon="grid" class="ui-btn-active">Page 2</a></li>
                <li><a href="#page-3" data-role="tab" data-icon="grid">Page 3</a></li>
            </ul>
        </div>
    </div>
</div>

<div id="page-3" data-role="page">
    <div data-role="header">
        <a href="#" data-icon="arrow-l" data-iconpos="left" data-rel="back" data-transition="slide" data-direction="reverse">Back</a>
        <h1>Page 3</h1>
    </div>
    <div data-role="content">
        <p>Page 3 content</p>
    </div>
    <div data-role="footer" data-position="fixed">
        <div data-role="navbar">
            <ul>
                <li><a href="#page-1" data-role="tab" data-icon="grid">Page 1</a></li>
                <li><a href="#page-2" data-role="tab" data-icon="grid">Page 2</a></li>
                <li><a href="#page-3" data-role="tab" data-icon="grid" class="ui-btn-active">Page 3</a></li>
            </ul>
        </div>
    </div>
</div>



他只不过是把页面跳转的效果去掉(默认是slide)了,让人感觉没切换page,只改变了中间的content。
具体JS如下:
$("a[data-role=tab]").each(function () {
    var anchor = $(this);
    anchor.bind("click", function () {
        $.mobile.changePage(anchor.attr("href"), {
            transition: "none",
            changeHash: false
        });
        return false;
    });
});

$("div[data-role=page]").bind("pagebeforeshow", function (e, data) {
    $.mobile.silentScroll(0);
    $.mobile.changePage.defaults.transition = 'slide';
});


这是目前最好也是最能理解的解决办法。我看见还有一个解决办法,但要写很多JS,难理解,不使用也罢.
分享到:
评论

相关推荐

    jQM:jQM文档的免费社区应用程序的源代码-app source code community

    标题"jQM:jQM文档的免费社区应用程序的源代码-app source code community"表明这是一个关于jQM(jQuery Mobile)的项目,它是一个免费的社区应用程序的源代码。jQM是一个用于构建响应式移动Web应用的前端框架,主要...

    jqm中文时间控件

    通过使用jqm中文时间控件,开发者可以快速地在项目中添加时间选择功能,而无需从头开始编写复杂的JavaScript代码或CSS样式。 该控件的实现主要基于jQuery库和jQuery Mobile的增强型表单元素。jQuery是一个强大的...

    Booking_Movies-JQM:jQueryMobile关于预订电影

    在"Booking_Movies-JQM"项目中,Sour Leangchhean利用jQuery Mobile开发了一个电影预订系统,以适应现代用户的移动设备需求。这个项目的核心在于如何利用JavaScript(jQuery库的一部分)和jQuery Mobile的组件来创建...

    java类加载修改源码-jqm:异步作业管理器

    JQM,是一个队列管理器。 它有三个目标: 通过使用配置丰富的队列来优化和简化作业的执行,无论它们是什么 使工作管理变得简单 易于包含或嵌入到大多数环境中。 结果是一个占用空间小、易于使用的网格执行系统,它...

    jqm文件上传,上传图片,jqm的表单操作,jqm的ajax的使用,jqm文件操作大全,文件操作demo

    本篇文章将详细探讨`jqm文件上传`、`jqm的表单操作`、`jqm的ajax使用`以及相关的`文件操作demo`,帮助你掌握如何在jqm环境中实现文件,尤其是图片的上传功能。 1. **jqm文件上传** jQuery Mobile提供了对HTML5表单...

    jqm模仿iPhone桌面菜单,jqm实战开发,jqm开发例子Demo

    jqm模仿iPhone桌面菜单,jqm实战开发,jqm开发例子Demo jqm模仿iPhone jqmDemo jqm例子 jqm实战开发 jqm选项卡 使用jqm实现iPhone桌面功能,jQuery Mobile实现选项卡功能

    jqm开发的音乐播放器

    综上所述,"jqm开发的音乐播放器"项目不仅展示了 jqMobi 在移动前端开发中的实用性,也体现了其在构建交互式音乐播放应用方面的潜力。开发者可以通过这个实例学习如何结合 jqMobi 的特性和 HTML5 的音频 API 来创建...

    JQM实战源码

    1. **异步页面加载**:通过`data-ajax="true"`属性,链接点击可以不刷新整个页面,而是仅加载目标页面的内容。 2. **动态添加内容**:可以使用`$.mobile.loadPage()`方法动态加载页面,或者通过`$.ajax()`获取数据...

    JQM1.4.5-DEMOS:JQM 移动演示 1.4.5

    1. **增强的触摸事件处理**:JQM对触摸设备进行了优化,确保滑动、点击和其他手势的流畅体验。 2. **页面结构和路由**:使用`data-role`属性来标记HTML元素,实现页面和内容的分段,同时提供了页面间导航的管理。 3....

    sample101:示例 jqm 模板

    2. **结构化页面**:按照 jqm 的要求,设置页面的基本结构,包括 `&lt;div data-role="page"&gt;`、`&lt;div data-role="header"&gt;`、`&lt;div data-role="content"&gt;` 和 `&lt;div data-role="footer"&gt;`。 3. **添加组件**:利用 jqm...

    Employee Directory JQM

    《员工目录JQM:利用JQuery Mobile与数据库交互构建用户界面》 在现代Web开发中,JQuery Mobile是一个强大的框架,用于创建响应式、触控优化的移动应用程序。本项目"Employee Directory JQM"就是利用这个框架的一个...

    jqm带参数跳转

    在移动应用开发中,jQuery Mobile 是一个非常流行的前端框架,它专为触摸设备设计,提供了丰富的 UI 组件和流畅的页面导航。在这个场景中,我们关注的是如何在 jQuery Mobile 中进行页面间的跳转并传递参数。`jqm带...

    query mobile 代码助手

    将常用的组件分类成page页面、content内容、Form表单,其中page页面包括header头部、navbar导航、footer底部、grid网格、panel面析、collapsible折叠层,content内容image图片、audio音频、video视频、button按钮、...

    24时区APK+源码, android+JQM

    这种混合开发模式允许开发者利用已有的Web开发技能快速创建界面,同时借助WebView组件将网页内容嵌入到Android应用中。 3. **jQuery Mobile (JQM)**:JQM是一个轻量级的前端框架,专门用于创建响应式和触摸友好的...

    jqueryMobile入门资料合集

    3. **触控事件**:JQM对触摸事件进行了封装,如`vclick`(模拟点击)、`swipe`(滑动)等,使得在移动设备上的交互更加顺畅。 4. **增强型链接**:JQM会自动将链接转换为页面导航,实现无刷新页面加载。通过`data-...

    jquery mobile的所有版本库api文档简单示例demo下载jqm学习大全

    JQM 的使命是向所有主流移动浏览器提供一种统一体验,使整个 Internet 上的内容更加丰富 — 不管使用哪种查看设备。 JQM 的目标是在一个统一的 UI 中交付超级 JavaScript 功能,跨最流行的智能手机和平板电脑设备...

    jqm-inline-multiselect:在 jquery mobile 中使用复选框组来表示多选

    jqm-内联-多选一个插件,可让您使用复选框组在 jquery mobile 中表示多选。 演示: : 为什么? 我有一个存在于弹出窗口中的 jQM 表单,我需要在这里使用多选。 多选需要使用 jQM 样式,但这是不可能的,因为 jQM 将...

    jqm4gwt-standalone-1.3.5.zip

    【jqm4gwt-standalone-1.3.5.zip】是一个开源项目的压缩包,主要结合了jqm4gwt库与jQuery Mobile的所有依赖项,适用于GWT(Google Web Toolkit)开发。这个版本是1.3.5,意味着它是经过多次迭代和优化后的稳定版本。...

    websocket+jqm

    WebSocket 和 jQuery Mobile(jqm)是两种在现代Web开发中常用的技术。WebSocket提供了一种双向通信协议,使得浏览器和服务器可以进行实时、低延迟的数据交换,而jQuery Mobile(jqm)则是一个轻量级的移动设备框架...

    jqm-demo.rar

    http://blog.csdn.net/chelen_jak/article/details/19397569 源码

Global site tag (gtag.js) - Google Analytics