当前位置: 首页 > news >正文

封装html代码块到js函数中

有时候想把公共的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中的单引号,加一个下划线处理一下就可以了。



本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/6378619.html如需转载请自行联系原作者

相关文章:

  • K8S集群tls证书管理
  • Android -- DragDrop
  • 一个完整Java Web项目背后的密码
  • PHP字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、切割成数组等)...
  • vue element ui excel json2csv csv 导出
  • 这7个不可错过的数据可视化技术,让你的位置信息跃然纸上
  • JAVA运维-Tomcat支持APR模式
  • 路由器密码忘了怎么办 自己动手不求人
  • 源码编译安装 PHP 7.1.5 + nginx 1.12.0
  • 微信分享JS-SDK
  • 独家 | 环境大数据的应用案例及前景
  • P4165 [SCOI2007]组队
  • 跨域问题
  • laraval+node.js实现websocket
  • PowerShell 脚本执行策略
  • [deviceone开发]-do_Webview的基本示例
  • bearychat的java client
  • Druid 在有赞的实践
  • git 常用命令
  • IDEA常用插件整理
  • java正则表式的使用
  • mysql常用命令汇总
  • Mysql数据库的条件查询语句
  • npx命令介绍
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Vultr 教程目录
  • 大型网站性能监测、分析与优化常见问题QA
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 算法-图和图算法
  • 消息队列系列二(IOT中消息队列的应用)
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 怎么把视频里的音乐提取出来
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #{}和${}的区别是什么 -- java面试
  • #FPGA(基础知识)
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (1)Android开发优化---------UI优化
  • (C++17) std算法之执行策略 execution
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (力扣题库)跳跃游戏II(c++)
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .chm格式文件如何阅读
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET 中 GetProcess 相关方法的性能
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .NET微信公众号开发-2.0创建自定义菜单
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • @cacheable 是否缓存成功_Spring Cache缓存注解