声明两个变量(layer和layuiTable)来接收模块的数据,并且保存layui模块以便全局使用。
声明一个变量(tabStudent)来放置表格数据。
二、开始初始化模块
首先我们在加载事件里面将声明的那两个变量来接收layer(d出层)和 table(数据表格)
三、接下来就是初始化表格,初始化得到的数据就放入刚刚声明的全局变量(tabStudent)里面
四、在然后就是写初始化表格里面的参数:
将表格的ID放入elem(指定原始table容器的选择器或DOM,方法渲染方式必填)里面
查询方法的路径(url: 异步数据接口相关参数,url参数为必填项)
设置表头(cols) 将表格的结构放入
例:
需要写一个方法来设置最后一列来返回设置在最后一列所设置的 *** 作按钮,比如当我们要在 *** 作那行设置一个修改和删除的按钮的时候:
Onclick是点击事件
4. 设置表格每页的行数:page(开启分页):{
limit:n (指定每页显示的条数)
limits: [ 5,10,20,n] (每页条数的选择项)}
5. 当你需要表格的一些“列显示隐藏” “打印” 或者 “导出” 功能的时候你就必须设置开启表格的工具栏
参数toolbar的作用便是开启表格头部工具栏区域,该参数支持4种类型值:
toolbar: ’#toolbarDemo(注:该代码取的是自定义好的模板的ID 该模板可以放在页面的任意位置)’ 指定自定义工具栏模板选择器
toolbar: ’xxx’ 直接传入工具栏模板字符
toolbar: true 仅开启工具栏,不显示左侧模板
toolbar: ‘default ’ 让工具栏左侧显示默认的内置模板
该参数的默认值为false.
6. 设置表格的图标:
defaultToolbar:可以自由配置头部工具右侧的图标,数组可以3种:
defaultToolbar :[‘filter’]:显示筛选图标
defaultToolbar [‘exports’]:显示导出图标
defaultToolbar [‘print’]:显示打印图标
这些值也可以根据排序的顺序来显示排版图标,如defaultToolbar:[‘filter’,’exports’,’print’
7. Table容器的默认宽度是跟随它的父元素铺满的,你也可以设定一个固定的值(width),当容器中的内容超出了该宽度时,会自动出现横向滚动条。甚至还可以设置表格的高(height)。
8. 如果你点击一个切换分页时不知道它是否为加载状态,则你可以添加loading这个参数,它的作用就是是否显示加载条,默认值是为true,如果设置false则在切换分页时不会出现加载条(注:该参数只是适于url参数开启的方式)。
五、然后就是在控制器为表格添加数据,数据添加完成后将其方法名称放入url里面。
在Ajax进行后台数据请求的过程中,我们有时候会希望用户能知道页面后台还在做一些事情,这时候就需要给用户一个非常明确的提示,也就是我们所谓的进度条实现原理:
Jquery可以对ajax进行全局的设置,实现类似于C#中面向切面的效果,即对在Ajax提交之前和提交完成之后,我们均可以对其进行一系列的 *** 作,所以我们可以在ajax开始的时候,把Loading框显示出来,在ajax请求完成之后,把loading框关闭掉,基本上就完美实现这个效果了。
Jquery全局配置Ajax的方式为:
$.ajaxSetup({
beforeSend:
function
()
{
//ajax请求之前
},
complete:
function
()
{
//ajax请求完成,不管成功失败
},
error:
function
()
{
//ajax请求失败
}
})
当然,beforeSend/complete/error这些配置在单个的ajax中也是可以去配置的,把他写在ajaxSetup,并且放到公共的页面上,他就是全局的啦~
最后献上代码吧,我这里在做的时候,为了方便,直接使用了layer这个插件来实现loading的效果,并没有手动去写css毕竟这不是咱强项~有能力的同学可以自己去写一下这个loading的效果,用js手动控制其显示隐藏的方式来实现~如果要直接copy,那么请引入layer,传送门:http://layer.layui.com/
这里有一点需要说明的是,当同时存在多个ajax时,可能会一个加载完了,就把其他的全都关掉了,对于这个,我能想到的有如下两种解决方案:
■我目前的解决办法是让他打开多个(坐标都一样,看不出来),然后关的时候哪个结束了就关哪个,我这里的做法是给ajaxSetup里面增加了个index参数(这玩意儿只能写到设置的对象里面,不然还是所有的ajax共享同一个),有了index,应该就怎么玩都行了。
■还有一种解决方案适合于自己去写这个控制逻辑,只显示一个加载框,在加载框上写个当前有多少ajax在执行的参数类似于<div
data-ajax-count='0'></div>,每次开始或结束的时候,去维护ajax-cout的值,并且在ajax结束的时候去判断,如果这个data-ajax-count小于等于0了,把div隐藏起来,应该也是可以的,这种办法我并没有实践.
$(function
()
{
$.ajaxSetup({
layerIndex:-1,
beforeSend:
function
()
{
this.layerIndex
=
layer.load(0,
{
shade:
[0.5,
'#393D49']
})
},
complete:
function
()
{
layer.close(this.layerIndex)
},
error:
function
()
{
layer.alert('部分数据加载失败,可能会导致页面显示异常,请刷新后重试',
{
skin:
'layui-layer-molv'
,
closeBtn:
0
,
shift:
4
//动画类型
})
}
})
})
以上所述是小编给大家介绍的Ajax全局加载框(Loading效果)的配置的全部叙述,希望对大家有所帮助,如果大家有任何疑问,欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对脚本之家网站的支持!
( 用什么标签不重要,只要样式用对了,都能出效果,用ul里面嵌套li与div嵌套div是一样的,注意里面子项里面要加一个<a></a>不然点击没效果 )
( 如果不加载element模块,也没有效果 )
(在页面中有很多元素需要自动去完成一些处理,譬如导航菜单的小滑块、Tab的切换 *** 作,他们往往不需要去单独调用一个方法来开启一项功能,而页面上恰恰有太多这样的小交互,所以我们统一归类为element组件)
相关样式:
1、方向
(1)水平:默认的
(2)垂直:layui-nav-tree
2、其他样式
(1) layui-nav :代表这是一个导航菜单
(2) layui-nav-item :放在(1)的子标签中,代表这个导航菜单的一个子项
(3) lay-this :和(2)同级,代表当前选中的菜单项
(4) layui-nav-child :子项的子项
(5) layui-nav-img :会以导航合适的大小处理图片
导航菜单可应用于头部和侧边,Tab选项卡提供多套风格,支持响应式,支持删除选项卡等功能。面包屑结构简单,支持自定义分隔符。
1、风格说明
默认风格:只需要加layui-tab
简洁风格:再追加上layui-tab-brief
卡片风格:再追加上layui-tab-card
2、相关样式
layui-tab:代表这是一个选项卡
(1)layui-tab-title:选项卡的头
【1】layui-tab-this:选中该选项卡
(2)layui-tab-content:选项卡的内容
【1】layui-tab-item:一个选项卡头对应的具体内容
【2】layui-tab-show:表示初始显示,一般哪个头上加了layui-tab-this,它对应的content就加上layui-tab-show
3、相关属性
lay-allowclose="true":是否开启关闭按钮
lay-filter="demo":用来在方法中唯一确定一个layui组件
lay-id="1":用来配合lay-filter属性唯一确定一个子组件
4、相关方法
element.tabAdd(filter, options):用于新增一个Tab选项
option示例:
{
title: '选项卡的标题'
,content: '选项卡的内容' //支持传入html
,id: '选项卡标题的lay-id属性值'
}
element.tabDelete(filter, layid):用于删除指定的Tab选项
element.tabChange(filter, layid):用于外部切换到指定的Tab项上
进度条进度条可应用于许多业务场景,如任务完成进度、loading等等,是一种较为直观的表达元素。
相关样式:
layui-progress:表示这是一个进度条
layui-progress-bar:表示进度条中的进度,依靠其lay-percent属性的值来控制进度大小,值取值范围0-100%
layui-bg-red/green/...:表示进度条的颜色
layui-progress-big:表示大尺寸进度条
相关属性:
lay-percent="80%":代表具体的进度
lay-showpercent="true":是否显示百分比数字
进度条的宽度是 100% 适配于它的父级元素
一般的面板通常是指一个独立的容器,而折叠面板则能有效地节省页面的可视面积,非常适合应用于:QA说明、帮助文档等(同样依赖element)
1、卡片面板
相关样式:
layui-row:代表一行
layui-col-space15:space0-space30,代表卡片之间的间距
layui-colmd5:md1-12,代表当前卡片占整行的列数
layui-card:代表一个卡片
layui-card-header:代表卡片头信息
layui-card-body:代表卡片内容样式
2、普通折叠面板
相关样式:
layui-collapse:代表一个折叠面板
layui-colla-item:代表一个折叠项
layui-colla-title:代表一个折叠项的标题
layui-colla-content:代表一个折叠项展开s的内容
layui-show:是否展开
相关事件:
3、手风琴面板
在普通折叠面板的基础上加上lay-accordion=""
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)