近日有需求做一个职业选择弹框,在网上搜了半天也没合适的;

暴躁大佬协助我DIY一个插件,直接使用,顺滑流畅,随心所欲!特别鸣谢@一样菜

不多BB了,直接撸代码:

引用写在上面:

/* 更改职业 */
selectOccupation : function() {
// 展示类型
var ms = new MutliSelectorUI(App.dataCode, function (data) {
App.OccupationTpCd = data.code;
App.OCCUPATION_NAME = data.name;
var str = data.name;
if (str.length>14) {
str = str.substr(0,14)+"...";
}
$("#selectOccupation").val(str);
$("#OccupationVal").val(data.code);
ms.hideDialog();
});
if(App.version) {
ms.showDialog();
}else{
ms.hideDialog();
}
},

  

function MutliSelectorUI(data, fn){
const data_list = data;
var panelBg = document.createElement('div')
panelBg.className="msu_panel_background"
panelBg.setAttribute('id','msu_panel_background')
document.body.appendChild(panelBg)
var $panel = $('#msu_panel_background')
$panel.css({
display: 'none'
}) this.showDialog = function(){
$panel.show()
$("#pageB").attr({"data-btnLeft":"false||", "data-btnRight":"false||"});
Fw.showPageArea($("#pageB"), [ $(".page") ], true);
}
this.hideDialog = function(){
$panel.hide()
$("#pageB").attr({"data-btnLeft":"true|返回|App.backPerson()", "data-btnRight":"true|保存|App.saveOccupation()"})
Fw.showPageArea($("#pageB"), [ $(".page") ], true)
}
let self = this
$panel.empty()
$panel_box = $('<div class="msu_panel_box"></div>')
$panel_box_cancel = $('<div class="msu_panel_cencels">取 消</div>')
$panel.append($panel_box)
$panel.append($panel_box_cancel) this.renderMainRow = function(){
let indx = 0;
$panel_box.empty()
for(let item of data_list){
console.log(JSON.stringify(item.classes))
var $row_item = $('<div class="msu_main_row" code="'+item.code+'" name="'+item.name+'" isexpend="false"><div class="msu_text">'+item.name+'</div><div class="msu_arrow right"></div></div>')
$panel_box.append($row_item)
if(item.classes.length == 0){
$row_item.find('.msu_arrow').hide()
}
indx++
if(indx == data_list.length){
$row_item.css({
borderBottom: '0'
})
} }
} // init
this.renderMainRow()
$panel_box_cancel.on('click',function(){
self.hideDialog()
})
$panel.on('click','.msu_main_row',function () {
let _code = $(this).attr('code')
let _name = $(this).attr('name')
let isexpend = $(this).attr('isexpend')
let classes = [] for(let dt of data_list){
if(dt.code == _code){
classes = dt.classes
break;
}
}
if(classes.length == 0){ if(typeof fn === 'function'){
fn({
code:_code,
name: _name
})
}
return;
}
$panel_box.empty(); var $subitem = $('<div class="msu_back_btn"><div class="msu_arrow left"></div><div class="msu_text">'+_name+'</div></div>')
$panel_box.append($subitem)
let indx = 0
for(var cls of classes){
var $subitem = $('<div class="msu_sub_row" code="'+cls.code+'" name="'+cls.name+'">'+cls.name+'</div>')
$panel_box.append($subitem);
indx++
if(indx == classes.length){
$subitem.css({
borderBottom: '0'
})
}
} })
$panel.on('click','.msu_sub_row',function () {
var _code = $(this).attr('code')
var _name = $(this).attr('name')
if(typeof fn === 'function'){
fn({
code:_code,
name: _name
})
}
})
$panel.on('click','.msu_back_btn',function () {
self.renderMainRow()
}) }

最新文章

  1. UIScrollView的代理(delegate)
  2. asp.net mvc 依赖缓存启动项配置
  3. BZOJ1933: [Shoi2007]Bookcase 书柜的尺寸
  4. web前端开发工程师,你了解吗?
  5. WPF 制作聊天窗口获取历史聊天记录
  6. 【HTML5】Web Workers
  7. 一个坐标点围绕任意中心点旋转--C#实现
  8. 关于Androdi中SQLITE 3采用GBK编码存储,数据库中文乱码问题。
  9. 王立平--android中的anim(动画)
  10. (简单) HDU 3397 Sequence operation,线段树+区间合并。
  11. StackExchange.Redis 官方文档(一) Basics
  12. yii2 入口文件 提示syntax error, unexpected T_OBJECT_OPERATOR
  13. bug终结者 团队作业第三周
  14. vue 在已有的购买列表中(数据库返回的数据)修改商品数量
  15. etcd v3 备份恢复
  16. RN—Android 物理返回键监听
  17. 设计模式のFacadePattern(外观模式)----结构模式
  18. docker mysql Exit 1
  19. 版本控制 version control和团队协作
  20. scala-数组/列表

热门文章

  1. 记一次redis-cluster的切换
  2. Object-oriented programming
  3. tomcat 映射虚拟路径
  4. Windows 10快速在指定目录打开命令行
  5. Redis字符串(STRING)中BIT相关命令
  6. QT中文字的绘制
  7. poj 2663 Tri Tiling (状压dp+多米诺骨牌问题+滚动数组反思)
  8. JavaScript和CSS实用工具、库与资源
  9. 调整mysql数据库最大连接数
  10. idea 编辑器 光标问题!(insert键)