修改mui accordion(折叠面板)默认展开收缩行为
mui的折叠面板 accordion 默认展开收缩逻辑是,展开其中一个的同时收缩起同级已经展开的元素。
实际需求:展开其中一个不必收缩同级元素。

分析mui.js源代码:
window.addEventListener('tap', function(event) {
// console.log("1"+cell);
if (!cell) {
return;
}
var isExpand = false;
var classList = cell.classList;
var ul = cell.parentNode;
if (ul && ul.classList.contains(CLASS_RADIO_VIEW)) {
if (classList.contains(CLASS_SELECTED)) {
return;
}
var selected = ul.querySelector('li' + SELECTOR_SELECTED);
if (selected) {
selected.classList.remove(CLASS_SELECTED);
}
classList.add(CLASS_SELECTED);
$.trigger(cell, 'selected', {
el: cell
});
return;
}
if (classList.contains('mui-collapse') && !cell.parentNode.classList.contains('mui-unfold')) {
if (!preventDefaultException.test(event.target.tagName)) {
event.detail.gesture.preventDefault();
}
if (!classList.contains(CLASS_ACTIVE)) { //展开时,需要收缩其他同类
var collapse = cell.parentNode.querySelector('.mui-collapse.mui-active');
//方法一在源代码里面注释下面找个判断
if (collapse) {
collapse.classList.remove(CLASS_ACTIVE);
}
isExpand = true;
}
classList.toggle(CLASS_ACTIVE);
if (isExpand) {
//触发展开事件
$.trigger(cell, 'expand');
//scroll
//暂不滚动
// var offsetTop = $.offset(cell).top;
// var scrollTop = document.body.scrollTop;
// var height = window.innerHeight;
// var offsetHeight = cell.offsetHeight;
// var cellHeight = (offsetTop - scrollTop + offsetHeight);
// if (offsetHeight > height) {
// $.scrollTo(offsetTop, 300);
// } else if (cellHeight > height) {
// $.scrollTo(cellHeight - height + scrollTop, 300);
// }
}
} else {
radioOrCheckboxClick(event);
}
});
得出2种解决办法的结论。
方法一:注释如下代码
// if (collapse) {
// collapse.classList.remove(CLASS_ACTIVE);
// }
方法二:关键在 ruturn false; 这句可以取消mui.js库默认绑定的事件,这样就能达到重写。
//自定义展开后不需要讲同级元素折叠
mui('body').on('tap','.mui-collapse',function(e){ this.classList.toggle('mui-active');
return false;//可以取消继续执行默认绑定事件
})
方法三:阻止事件冒泡
//自定义展开后不需要讲同级元素折叠
mui('body').on('tap','.mui-collapse',function(e){
//阻止事件冒泡
e.stopPropagation(); this.classList.toggle('mui-active');
})
修改mui accordion(折叠面板)默认展开收缩行为的更多相关文章
- 布局-EasyUI Panel 面板、EasyUI Tabs 标签页/选项卡、EasyUI Accordion 折叠面板、EasyUI Layout 布局
EasyUI Panel 面板 通过 $.fn.panel.defaults 重写默认的 defaults. 面板(panel)当做其他内容的容器使用.它是创建其他组件(比如:Layout 布局.Ta ...
- Jquery Accordion 折叠面板
属性 类型 默认值 active Boolean/Number/jQuery/Selector/Element 第一个面板 设定默认显示的面板.设置为 false 时默认不显示面板,需 collaps ...
- amazeui折叠面板智能化展开
2016年12月12日 21:05:18 星期一 场景: 我拿这个组件用作管理后台的侧边栏 效果: 根据当前访问的url不同, 展开不同的面板 amazeui折叠面板 js代码: <script ...
- (八)easyUI之Accordion折叠面板:动态面板
二.动态面板 数据库设计 函数设计:该函数用于获取某个节点的所有子节点 CREATE FUNCTION fn_getAddress_ChildList_test(rootId INT) RETURNS ...
- (七)easyUI之Accordion折叠面板:普通的静态面板
一.普通的静态面板 前台 <%@ page language="java" contentType="text/html; charset=UTF-8" ...
- Vue 折叠面板Collapse在标题上添加组件后,阻止面板冒泡的用法
iView组件中,折叠面板Collapse点击面板标题部分,会出现面板收起或展开的效果.那么在面板标题后面再添加下拉框之类的组件时,会出现跟面板点击一样的效果,这时候就需要阻止冒泡的用法了.具体代码: ...
- accordion(折叠面板)的使用
一.前言: 折叠面板(accordion)允许使用多面板(panel),同时显示一个或多个面板(panel).每个面板(panel)都有展开和折叠的内建支持.点击面板(panel)头部可展开或折叠面板 ...
- jQuery EasyUI 折叠面板accordion的使用实例
1.对折叠面板区域 div 设置 class=”easyui-accordion” 2.在区域添加多个 div, 每个 div 就是一个面板 (每个面板一定要设置 title 属性). 3.设置面板属 ...
- mui折叠面板的使用
折叠面板从二级列表中演化而来,dom结构和二级列表类似,如下: <div class="mui-content"> <div class="mui-ca ...
随机推荐
- VS2010创建动态链接库(DLL)的方法
1.第一步创建WIN32项目,选择DLL 2.第二步,创建你自己的DLL CPP文件和头文件,下面以两个简单的加减法函数为例子导出 然后编译生成即可.DLL文件在Debug或Release目录中 .d ...
- Java——多线程练习
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- 【python】判断值是否在list和set的对比以及set的实现原理
判断值是否在set集合中的速度明显要比list快的多, 因为查找set用到了hash,时间在O(1)级别. 假设listA有100w个元素,setA=set(listA)即setA为listA转换之后 ...
- python打包工具pyinstaller的使用
安装PyInstaller pip install pyinstaller 安装完后,检查安装成功与否: pyinstaller --version 安装成功后,就可以使用下面的命令了: pyinst ...
- grafana的一些坑
坑1: 在设置alert的时候template中的变量是不被支持的,警告如下: 解决办法: 使用不带变量的具体sql查询 坑2: 时间轴的设置: 在更早的版本中时间轴的locale是无法设置的,就是说 ...
- 框架流程图绘制工具OmniGraffle 7 for Mac
1.官网下载地址 https://www.omnigroup.com/omnigraffle 2.激活方法 Omnigraffle Pro 7注册码/许可证 名字:Appked 序列号:MFWG-GH ...
- java 百分比显示Double类型数值
DecimalFormat percent = new DecimalFormat("0.00%"); completed_num = (double) involvedTask_ ...
- final版——爱阅APP功能说明书
爱阅APP功能说明书 一.引言 以下内容是final版的功能说明书. 新增功能: 1.WiFi传书 2.书友群跳转 3.网址内部打开 4.设置-->关于爱阅 5.设置-->TXT文本的翻页 ...
- .NET练习计算平方根
1.新建Windows窗体 2.窗体中添加控件:TextBox(文本框).Button(按钮).和Label(标签) 3.为Button对象添加点击事件代码 点击事件代码设计思路 ①从文本框中获取输入 ...
- 转:sqlplus使用总结
为什么我要使用sqlplus: SQLPLUS很多人用的并不多,在我观察周围来看,很多人都在使用PLSQL DEVELOPER,尤其是开发人员,更是如此,那学习SQLPLUS有啥好处呢?在我看来有如下 ...