layui 的常用元素操作 element

“页面中有许多元素需要自动去完成一些处理,譬如导航菜单的小滑块、Tab的切换等操作,他们往往不需要去单独调用一个方法来开启一项功能,而页面上恰恰有太多这样的小交互,所以我们统一归类为element组件。跟表单一样,基于元素属性和事件驱动的接口书写方式。”——引 自layui文档
可以总结为:layui.js通过 element来控制管理一些常用的页面元素,如tab,nav,breadcrumb(面包屑),progress(进度条),collapse(折叠面板)等
具体如下:

1.定义元素类型、选择名
<div class="layui-tab" lay-allowClose="true" lay-filter="demo">…</div>   
<span class="layui-breadcrumb" lay-separator="|"></span>

【layui-tab】、【layui-breadcrumb】元素类型 【lay-filter=“demo”】 选择名

2.加载element 监听事件
layui.use('element', function(){
  var element = layui.element;
  
  //一些事件监听
  element.on('tab(demo)', function(data){
    console.log(data);
  });
});

事件监听用: element.on(filter, callback); 这里的filter 即:类型(选择名) / tab(demo)

监听选项卡切换
element.on(‘tab(filter)’, function(data){
console.log(this); //当前Tab标题所在的原始DOM元素
console.log(data.index); //得到当前Tab的所在下标
console.log(data.elem); //得到当前的Tab大容器
});
监听选项卡删除
element.on(‘tabDelete(filter)’, function(data){
console.log(this); //当前Tab标题所在的原始DOM元素
console.log(data.index); //得到当前Tab的所在下标
console.log(data.elem); //得到当前的Tab大容器
});

监听导航菜单的点击
element.on(‘nav(filter)’, function(elem){
console.log(elem); //得到当前点击的DOM对象
});

//监听折叠面板
element.on(‘collapse(filter)’, function(data){
console.log(data.show); //得到当前面板的展开状态,true或者false
console.log(data.title); //得到当前点击面板的标题区域DOM对象
console.log(data.content); //得到当前点击面板的内容区域DOM对象
});
//动态操作进度条

上述是一个已经设置了过滤器(lay-filter="demo")的进度条 现在你只需要在某个事件或者语句中执行方法:element.progress('demo', '50%'); 即可改变进度 #### 3.常用方法 ``` //添加tab卡 element.tabAdd(filter, options);
			element.tabAdd('demo', {
			  title: '选项卡的标题'
			  ,content: '选项卡的内容' //支持传入html
			  ,id: '选项卡标题的lay-id属性值'
			});  

//删除 tab
element.tabDelete(filter, layid);

		element.tabDelete('demo', 'xxx'); //删除 lay-id="xxx" 的这一项  

//切换到选项卡
element.tabChange(filter, layid);

//动态改变进度条
element.progress(filter, percent);

//用于绑定自定义 Tab 元素(即非 layui 自带的 tab 结构)。
该方法为 layui 2.1.6 新增 
参数options:设定可选值的对象,目前支持的选项如下述示例:
		//HTML
			<ul id="tabHeader">
			  <li>标题1</li>
			  <li>标题2</li>
			  <li>标题3</li>
			</ul>
			<div id="tabBody">
			  <div class="xxx">内容1</div>
			  <div class="xxx">内容2</div>
			  <div class="xxx">内容4</div>
			</div>
			              
			//JavaScript              
			element.tab({
			  headerElem: '#tabHeader>li' //指定tab头元素项
			  ,bodyElem: '#tabBody>.xxx' //指定tab主体元素项
			});       
4.更新渲染
element.init(type, filter)
//注意:2.1.6 开始,可以用 element.render(type, filter); 方法替代

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值