乐趣区

关于移动端:移动端级联组件mCascader

挪动端开发中可能会波及到树状数据的抉择,因为 mui 中没有比拟好的组件能够应用,所以我基于 mui 和 jq 开发了一款能够在挪动端操作级联的气泡组件。
源码地址:https://github.com/booms21/mC…

mCascader

mCascader 是一款 mui 格调的挪动端 h5 气泡级联框,反对可抉择任意层级、默认值、分隔符

应用办法:

首先引入 mui 和 jq 库,mCascader.css(cascader 的款式)

 <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/mui/3.7.1/js/mui.min.js"></script>
    <link
      href="https://cdn.bootcdn.net/ajax/libs/mui/3.7.1/css/mui.min.css"
      rel="stylesheet"
    />
    <link href="css/mCascader.css" rel="stylesheet" />
     <script src="js/mCascader.js"></script>

间接调用 mCascader 办法,并传入配置项:

 mCascader({
     input:'#demo', // 对应 input 的 id
     data:data, //mCascader 的数据
     value:[''],//mCascader 的默认值, 默认值节点的 id 字符串
     separator:'/', //input 中的分隔符
     onClick:function(node){ // 当抉择实现时的回调函数,node 为以后点击的点击的节点
       console.log(node)
     }
   });

input:

对应文本框的选择器,字符串类型

data:

mCascader 的数据。Array 类型,树结构,data 中的节点必须要有以下属性:

 data = [{
   id:'',  // 必须, 惟一的 id 值,String 类型
   name:'', // 必须, 对应 mCascader 节点的显示文本,String 类型
   children:[...] // 子节点,Array 类型
    },...]

获取 mCascader 以后的 id 值 (2 种):

1.mCascader.currtId

2.$(‘#demo’).data(‘id’) 或 $(mCascader.options.input).data(‘id’)

返回上一层级:

mCascader.back()

清空 mCascader 数据及重置界面:

mCascader.clear()

例子:

mcascader 的 DOM 不写死到 js 中,保留了本来组件的构造,不便你自定义组件的款式
    <div id="mcascaderPopover" class="mui-popover">
      <div class="label">
        <button
          type="button"
          id="goback"
          class="mui-btn mui-btn-outlined"
          onclick="mCascader.goBack()"
        >
          <span class="mui-icon mui-icon-back"></span></button
        > 请抉择一个节点
      </div>
      <div id="mcascader">
        <p id="noData" style="display: none"> 无数据 </p>
        <ul class="mui-table-view"></ul>
      </div>
    </div>

    <div class="mui-input-row">
      <div class="label"><a href="#mcascaderPopover"></a> 节点:</div>

      <input type="text" id="demo"  placeholder="请抉择" readonly />
    </div>
  <script src="js/mCascader.js"></script>
  <script>
    var json = [
      {
        name: "节点 1",
        id: "1",
        children: [{ name: "节点 11", id: "1-1", children: [] },
          {
            name: "节点 12",
            id: "1-2",
            children: [{ name: "节点 122221", id: "1-2-1", children: [] },
              {name: "节点 12222222", id: "1-2-2", children: [] },
            ],
          },
          {name: "节点 123", id: "1-3", children: [] },
          {name: "节点 244", id: "1-4", children: [] },
        ],
      },
      {
        name: "节点 2",
        id: "2",
        children: [{ name: "节点 24411111", id: "2-4", children: [] },
          {name: "节点 55555", id: "2-7", children: [] },
        ],
      },
    ]; // 存储过滤的值
    mCascader({
      input: "#demo", // 对应 input 的 id
      data: json, //mCascader 的数据
      value: ["1-2-2"],//mCascader 的默认值
      separator: "/", //input 中的分隔符
      onClick: function (node) {
        // 当抉择实现时的回调函数
        console.log(node);
      },
    });
  </script>

欢送你参加奉献!👏

退出移动版