layui简介
layui是一种采用自身模块规范编写的前端UI框架,遵循原生HTML/CSS/JS的书写组织形式,门槛极低,拿来即用.
无需涉足各种前端工具的复杂配置,只需面对浏览器本身.
使用layui
- 获取layui
- 将其完整地部署到项目目录
- 引用css文件和js文件
初始化模块
layui.use(['layer', 'form'], function(){
var layer = layui.layer
,form = layui.form;
});
layui表格动态操作
- 页面语法
<table id="demo" lay-filter="test"></table>
- js语法
table.render({
elem: '#demo'
,url: '/demo/table/user/'
,page: true
,cols: [[
{field: 'id', title: 'ID', width:80, sort: true, fixed: 'left'}
,{field: 'username', title: '用户名', width:80}
]]
});
- 接口返回数据
{
"code": 0,
"msg": "",
"count": 1000,
"data": [
{
"id": 10000,
"username": "user-0"
}
]
}
- templet 自定义列模板
2. 绑定模板选择器
javascript table.render({ cols: [[ {field:'title', title: '文章标题', width: 200, templet: '#titleTpl'} //这里的templet值是模板元素的选择器 ,{field:'id', title:'ID', width:100} ]] });
2. 对应的模板
html <script type="text/html" id="titleTpl"> <a href="/detail/{{d.id}}" class="layui-table-link">{{d.title}}</a> </script>
- toolbar 绑定列工具条(和templet自定义列模板相似)
js语法 table.render({
cols: [[
{field:'id', title:'ID', width:100}
,{fixed: 'right', width:150, align:'center', toolbar: '#barDemo'}
]]
});
- 工具条事件
table.on('tool(test)', function(obj){
var data = obj.data;
var layEvent = obj.event;
var tr = obj.tr;
if(layEvent === 'detail'){
}
});
- 表格重新加载
table.reload('idTest', {
url: '/api/table/search'
,where: {}
});
- 表格事件监听
table.on('checkbox(test)', function(obj){
console.log(obj.checked);
console.log(obj.data);
console.log(obj.type);
});
table.on('toolbar(test)', function(obj){
var checkStatus = table.checkStatus(obj.config.id);
});
layui弹出层组件
- 基本用法
layui.use('layer', function(){
var layer = layui.layer;
layer.msg('hello');
});
- 基础参数
2. type - 基本层类型
2. title - 标题
2. content - 内容
2. skin - 样式类名
2. area - 宽高
2. offset - 坐标
2. icon - 图标
2. btn - 按钮
2. btnAlign - 按钮排列
2. closeBtn - 关闭按钮
2. shade - 遮罩
2. time - 自动关闭所需毫秒
2. id - 唯一标识
2. anim - 弹出动画
2. syccess - 层弹出后的成功回调方法
2. yes - 确定按钮回调方法
2. cancel - 右上角关闭按钮触发的回调 - 基础方法
2. layer.config(options) - 初始化全局配置
2. layer.ready(callback) - 初始化就绪
2. layer.open(options) - 原始核心方法
2. layer.alert(content, options, yes) - 普通信息框
2. layer.confirm(content, options, yes, cancel) - 询问框
2. layer.msg(content, options, end) - 提示框
2. layer.load(icon, options) - 加载层
2. layer.tips(content, follow, options) - tips层
2. layer.close(index) - 关闭特定层
2. layer.closeAll(type) - 关闭所有层
layui 表单层
- 基础语法
2. 页面元素
html <form class="layui-form"> <!-- 提示:如果你不想用form,你可以换成div等任何一个普通元素 --> <div class="layui-form-item"> <label class="layui-form-label">输入框</label> <div class="layui-input-block"> <input type="text" name="" placeholder="请输入" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="*">立即提交</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button> </div> </div> </form>
3. js语法
javascript layui.use('form', function(){ var form = layui.form; });
- 基础方法
- form.render() - 更新全部
- form.on(‘event(过滤器值)’, callback) - 事件监听
- form.on(‘select(filter)’,function(data){}) - 监听select选择
- form.on(‘checkbox(filter)’, function(data){}) - 监听checkbox复选
- form.on(‘switch(filter)’, function(data){}) - 监听switch开关
- form.on(‘radio(filter)’, function(data){ }) - 监听radio单选
- form.on(‘submit(*)’, function(data){}) - 监听submit提交