前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前端网页框架layui的使用小结

前端网页框架layui的使用小结

作者头像
呱牛笔记
发布2023-05-02 15:25:25
8160
发布2023-05-02 15:25:25
举报
文章被收录于专栏:呱牛笔记

总结一点就是,有基础框架做任何事情都能顺利很多,感谢layui的共享!

layui作为前端页面的基础框架,写了几个小页面,过程中碰到的问题,做了几点零碎总结:

1、使用JS获取当前页面的URL的参数:

 url:http://localhost:8200/jie/detail.html?tid=1

 获取tid的参数值:

//js

代码语言:javascript
复制
  var url_string = window.location.href;

  var url = new URL(url_string);
  var tid = url.searchParams.get("tid");
  var page = url.searchParams.get("page") || 1;

2、给select动态添加item,layui不刷新:

js:

代码语言:javascript
复制
   //重新渲染表单
  renderForm = function(){
    layui.use('form', function(){
     var form = layui.form;//高版本建议把括号去掉,有的低版本,需要加()
     form.render();
    });
   } 
   
   
   //动态添加option
      for(let i = 0; i< res['data'].length; i++){ 
        $("#topicType").append("<option value="+res['data'][i]['id']+">"+res['data'][i]['name']+"</option>");
      }
      renderForm();//表单重新渲染,要不然添加完显示不出来新的option

html:

代码语言:javascript
复制
<div class="layui-col-md3">
      <label class="layui-form-label">主题分类</label>
      <div class="layui-input-block">
                    <select lay-verify="required" name="topicType" id="topicType" lay-filter="column"> 
                      <option></option>  
                    </select>
      </div>
</div>

3、layui的缓存,session缓存和cookie缓存,一个页面关了就销毁,一个能持久化,可以根据场景选择页面数据共享的方法;

开始以为直接存储key,value,发现怎么存进去的都是空字符串{},原来value支持的是{key:"hello", value:"213"}的json结构,这个细节还是很容易踩的坑;

js:

代码语言:javascript
复制
  saveTopicToCache = function(name, value){ 
      var saveData = {key:name, value:value};
      layui.sessionData('pub6_com_user_cache_topic', saveData);//把AJSON对象存储为字符串
  }
  loadTopicFromCache = function (name) { 

      var cacheUser = layui.sessionData('pub6_com_user_cache_topic');
      return cacheUser[name] || {};
  }

4、列表数据分页页签效果

html:

代码语言:javascript
复制
        <div id="topic_page" style="text-align: center">
 
        </div>

js:

代码语言:javascript
复制
//topic_page,根据返回的总条数计算总页码
var pageTotal = (res['data']['total']/pageSize)?(res['data']['total']/pageSize
+ ((res['data']['total']%pageSize)>0?1:0)):1;
var page_html=[
    '<div class="laypage-main">',
    '<a href="/jie/index.html?page=1" class="laypage-next">首页</a>',
    '<span class="laypage-curr">1</span>', 
    '<span>…</span>',
    '<a href="/jie/index.html?page='+pageTotal+'" class="laypage-last" title="尾页">尾页</a>',
    '<a href="/jie/page/2/" class="laypage-next">下一页</a>',
    '</div>'
];
console.log("pageTotal:"+pageTotal+",currPage:"+currPage);
var pageRealHtml = "";
pageRealHtml += page_html[0];
if (currPage >= 5){ 
  pageRealHtml += page_html[1];
}
var start = 1;
var end = 0;
if (currPage < 5){
  start = 1;
  end = pageTotal;
}else{
  start = currPage - 3;
  end = pageTotal;
}
if (currPage == pageTotal){
  start = (pageTotal > 4)?(pageTotal - 4):1 ;
  end = pageTotal;
}
var index = 0;
for (var j=start; j<=end; j++){
  if (index++ >= 5){ 
    pageRealHtml += page_html[3];
    pageRealHtml += page_html[4]; 
    break;
  }
  if (j == currPage){ 
    pageRealHtml += '<span class="laypage-curr">'+j+'</span>';
  }else{
    pageRealHtml += '<a href="/jie/index.html?page='+j+'" >'+j+'</a>'; 
  }
}
pageRealHtml += page_html[6]; 
$("#topic_page").append(pageRealHtml);

6、异步提交后清空表单输入数据

代码语言:javascript
复制
   form.on('submit(*)', function(data){
    var action = $(data.form).attr('action'), button = $(data.elem);
    fly.json(action, data.field, function(res){             //不需要跳转
              $(data.form)[0].reset();
              layui.form.render();
              
   });
呱牛笔记
呱牛笔记
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/03/03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档