有时候想把公共的html封装起来,怎么处理呢?

好多页面都用到,不可能每个页面都写,这样就会有冗余,并且不好统一处理。

那就用js来重构html吧。

代码案例如下:

<footer class="aui-bar aui-bar-tab" id="footer">
<div class="aui-bar-tab-item" tapmode onclick="openWinPro('menu_mall')">
<i class="aui-iconfont aui-icon-home"></i>
<div class="aui-bar-tab-label">云店</div>
</div>
<div class="aui-bar-tab-item aui-active" tapmode>
<i class="aui-iconfont aui-icon-comment"></i>
<div class="aui-bar-tab-label">消息</div>
</div>
<div class="aui-bar-tab-item " tapmode onclick="openWinPro('menu_find')">
<i class="aui-iconfont aui-icon-like"></i>
<div class="aui-bar-tab-label">发现</div>
</div>
<div class="aui-bar-tab-item" tapmode onclick="openWinPro('menu_enterment')">
<i class="aui-iconfont aui-icon-video"></i>
<div class="aui-bar-tab-label">娱乐</div>
</div>
<div class="aui-bar-tab-item" tapmode onclick="openWinPro('menu_mine')">
<i class="aui-iconfont aui-icon-my"></i>
<div class="aui-bar-tab-label">我的</div>
</div>
</footer>

处理成js

function showMainMenu(active_name) {
// var active_name = arguments[0] ? arguments[0] : 'menu_mall'; // 定义默认值
active_name = active_name || 'menu_mall'; // 定义默认值
var footerHtml = '';
footerHtml += '<footer class="aui-bar aui-bar-tab" id="footer">';
if (active_name == 'menu_mall') {
footerHtml += ' <div class="aui-bar-tab-item aui-active" tapmode>';
footerHtml += ' <i class="aui-iconfont aui-icon-home"></i>';
footerHtml += ' <div class="aui-bar-tab-label">云店</div>';
footerHtml += ' </div>';
} else {
footerHtml += ' <div class="aui-bar-tab-item" tapmode onclick="openWinPro(\'menu_mall\')">';
footerHtml += ' <i class="aui-iconfont aui-icon-home"></i>';
footerHtml += ' <div class="aui-bar-tab-label">云店</div>';
footerHtml += ' </div>';
} if (active_name == 'menu_msg') {
footerHtml += ' <div class="aui-bar-tab-item aui-active" tapmode>';
footerHtml += ' <i class="aui-iconfont aui-icon-comment"></i>';
footerHtml += ' <div class="aui-bar-tab-label">消息</div>';
footerHtml += ' </div>';
} else {
footerHtml += ' <div class="aui-bar-tab-item" tapmode onclick="openWinPro(\'menu_msg\')">';
footerHtml += ' <i class="aui-iconfont aui-icon-comment"></i>';
footerHtml += ' <div class="aui-bar-tab-label">消息</div>';
footerHtml += ' </div>';
} if (active_name == 'menu_find') {
footerHtml += ' <div class="aui-bar-tab-item aui-active" tapmode>';
footerHtml += ' <i class="aui-iconfont aui-icon-like"></i>';
footerHtml += ' <div class="aui-bar-tab-label">发现</div>';
footerHtml += ' </div>';
} else {
footerHtml += ' <div class="aui-bar-tab-item" tapmode onclick="openWinPro(\'menu_find\')">';
footerHtml += ' <i class="aui-iconfont aui-icon-like"></i>';
footerHtml += ' <div class="aui-bar-tab-label">发现</div>';
footerHtml += ' </div>';
} if (active_name == 'menu_enterment') {
footerHtml += ' <div class="aui-bar-tab-item aui-active" tapmode >';
footerHtml += ' <i class="aui-iconfont aui-icon-video"></i>';
footerHtml += ' <div class="aui-bar-tab-label">娱乐</div>';
footerHtml += ' </div>';
} else {
footerHtml += ' <div class="aui-bar-tab-item" tapmode onclick="openWinPro(\'menu_enterment\')">';
footerHtml += ' <i class="aui-iconfont aui-icon-video"></i>';
footerHtml += ' <div class="aui-bar-tab-label">娱乐</div>';
footerHtml += ' </div>';
} if (active_name == 'menu_mine') {
footerHtml += ' <div class="aui-bar-tab-item aui-active" tapmode>';
footerHtml += ' <i class="aui-iconfont aui-icon-my"></i>';
footerHtml += ' <div class="aui-bar-tab-label">我的</div>';
footerHtml += ' </div>';
} else {
footerHtml += ' <div class="aui-bar-tab-item" tapmode onclick="openWinPro(\'menu_mine\')">';
footerHtml += ' <i class="aui-iconfont aui-icon-my"></i>';
footerHtml += ' <div class="aui-bar-tab-label">我的</div>';
footerHtml += ' </div>';
} footerHtml += '</footer>';
// $('body').append(footerHtml);
$api.append($api.dom('body'),footerHtml);
}

注意保持间距和美观性,利于后期维护。

调用很简单,用到的页面,直接调用函数showMainMenu()即可。

效果等同于每个页面都写一遍html。

原html中的单引号,加一个下划线处理一下就可以了。

封装html代码块到js函数中的更多相关文章

  1. JAVA之旅(十三)——线程的安全性,synchronized关键字,多线程同步代码块,同步函数,同步函数的锁是this

    JAVA之旅(十三)--线程的安全性,synchronized关键字,多线程同步代码块,同步函数,同步函数的锁是this 我们继续上个篇幅接着讲线程的知识点 一.线程的安全性 当我们开启四个窗口(线程 ...

  2. 在JS函数中执行C#中的函数、字段

    1.调用字段 cs文件的代码: ; protected void Page_Load(object sender, EventArgs e) { id = ; } js页面的代码: function ...

  3. eclipse实现代码块折叠-类似于VS中的#region……#endregion

    背 景 刚才在写代码的时候,写了十几行可以说是重复的代码: 如果整个方法或类中代码多了,感觉它们太TM占地方了,给读者在阅读代码上造成很大的困难,于是想到能不能把他们“浓缩”成一行,脑子里第一个闪现出 ...

  4. js函数中获得当前被点击元素

    问题描述:在html页面中点击<a>或者’按钮‘,进入js中的函数,在js函数中获得被点击那个<a>或‘按钮’元素 解决方法:方法一: html中: <a>标签:& ...

  5. 【玩转Eclipse】——eclipse实现代码块折叠-类似于VS中的#region……#endregion

    [玩转Eclipse]——eclipse实现代码块折叠-类似于VS中的#region……#endregion http://www.cnblogs.com/Micheal-G/articles/507 ...

  6. js函数中this的不同含义

    1.js函数调用过程中,js线程会进入新的执行环境并创建该环境的变量对象,并添加两个变量:this和arguments,因此可以在函数中使用这两个变量.需要注意的是,this变量不能重新赋值,而arg ...

  7. js函数中参数的传递

    数据类型 在 javascript 中数据类型可以分为两类: 基本类型值 primitive type,比如Undefined,Null,Boolean,Number,String. 引用类型值,也就 ...

  8. js函数中的BOM和DOM

    BOM 浏览器对象模型  screen对象 console.log(screen.width);// 屏幕宽度 console.log(screen.height);// 屏幕高度 console.l ...

  9. 构造代码块、this关键字、静态变量、静态代码块、主函数

    一.构造代码块: 作用:给对象进行初始化. 特点:对象一经运行就执行(与变量声明时赋初值同级别,此处注意 非法前向引用) 优先于构造函数的执行. 与构造函数的区别: 构造代码块是给所有对象统一初始化. ...

随机推荐

  1. WebKit.NET-0.5简单应用(2)——音量解决方案

    查找WebKit.NET相关文档,没有找到音量控制解决方法.换思路进行解决,尝试用Win32 API进行解决 [DllImport("winmm.dll")] public sta ...

  2. 紫书 例题11-10 UVa 1349 (二分图最小权完美匹配)

    二分图网络流做法 (1)最大基数匹配.源点到每一个X节点连一条容量为1的弧, 每一个Y节点连一条容量为1的弧, 然后每条有向 边连一条弧, 容量为1, 然后跑一遍最大流即可, 最大流即是最大匹配对数 ...

  3. Spring学习总结(14)——Spring10种常见异常解决方法

    在程序员生涯当中,提到最多的应该就是SSH三大框架了.作为第一大框架的Spring框架,我们经常使用. 然而在使用过程中,遇到过很多的常见异常,我在这里总结一下,大家共勉. 一.找不到配置文件的异常 ...

  4. 阿里云CentOS系统配置iptables防火墙

    虽说阿里云推出了云盾服务,但是自己再加一层防火墙总归是更安全些,下面是我在阿里云vps上配置防火墙的过程,目前只配置INPUT.OUTPUT和FORWORD都是ACCEPT的规则 一.检查iptabl ...

  5. 与Greenplum度过的三个星期

    5月4日-5月24日.断断续续折腾了三个星期的Greenplum,总算告一段落了:扩容,发现扩不成容.仅仅好升级.升级,发现一堆错误,仅仅好暂停修复数据库:修好了,继续升级.升完级,发现错误.修啊修啊 ...

  6. mysql-幻读及其例子

    第一步建表并插入5条记录:  接下来我们看下大部分mysql所说的幻读现象: 事务1(开启事务查询发现没有记录6准备插入):  事务2(开启事务,发现没有记录6插入,并提交事务):  事务1:查询发现 ...

  7. visual studio code(vscode)的使用(快捷键)

    Visual Studio Code初探 vscode 是一种可运行于 OS X,Windows 和 Linux 之上的免费跨平台编辑器: 1. 快捷键 ctrl + `:调出(对于 windows ...

  8. [Project Euler 409] Nim Extreme 解题报告 (统计方案数)

    题目链接:https://projecteuler.net/problem=409 题目: 题解: 题目问你必胜态的数目,我们考虑用总的方案数减去必败态的方案数(NIM游戏没有平局这个操作) 必败态的 ...

  9. Kali linux 2016.2(Rolling)里Metasploit的口令猜测与嗅探

    不多说,直接上干货! 对于发现的系统与文件管理类网络服务,比如Telnet.SSH.FTP等,可以进行弱口令的猜测,以及对明文传输口令的嗅探,从而尝试获取直接通过这些服务进入目标网络的通道. 对于SS ...

  10. 实时监控Cat之旅~对Get和Post进行封装,支持分布式消息树

    对第三方接口的调用我们需要对GET和POST进行监控,看一些请求的执行是否成功,如A调用B,B调用C,C调用D,这一连串的东西需要我们使用cat进行记录,进行记录之后,我们可以很容易的发现请求响应的时 ...