最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

bootstrap插件treeview實(shí)現(xiàn)全選父節(jié)點(diǎn)下所有子節(jié)點(diǎn)和反選功能

 更新時(shí)間:2017年07月21日 15:39:28   作者:Rain  
這篇文章主要為大家詳細(xì)介紹了bootstrap插件treeview實(shí)現(xiàn)全選父節(jié)點(diǎn)下所有子節(jié)點(diǎn)、反選功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

項(xiàng)目需要實(shí)現(xiàn)權(quán)限管理,使用前端框架bootstrap,所以就直接選用了bootstrap的treeview擴(kuò)展插件。先上圖:

選中父節(jié)點(diǎn)時(shí),父節(jié)點(diǎn)下所有子節(jié)點(diǎn)也都全部選中,看代碼

1、HTML代碼

<h2>TreeView Checkable</h2>
<div id="treeview-checkable"></div>

2、Json數(shù)據(jù)

function getTvStateData() {
   var defaultData = [
    {
     text: 'Parent 1',
     href: '#parent1',
     tags: ['4'],
     state: {
      checked: true
     },
     nodes: [
      {
       text: 'Child 1',
       href: '#child1',
       tags: ['2'],
       nodes: [
        {
         text: 'Grandchild 1',
         href: '#grandchild1',
         tags: ['0']
        },
        {
         text: 'Grandchild 2',
         href: '#grandchild2',
         tags: ['0']
        }
       ]
      },
      {
       text: 'Child 2',
       href: '#child2',
       tags: ['0']
      }
     ]
    },
    {
     text: 'Parent 2',
     href: '#parent2',
     tags: ['0'],
     nodes: [
      {
       text: 'Child 1',
       href: '#child1',
       tags: ['2'],
       nodes: [
        {
         text: 'Grandchild 1',
         href: '#grandchild1',
         tags: ['0']
        },
        {
         text: 'Grandchild 2',
         href: '#grandchild2',
         tags: ['0']
        }
       ]
      },
      {
       text: 'Child 2',
       href: '#child2',
       tags: ['0']
      }
     ]
    },
    {
     text: 'Parent 3',
     href: '#parent3'
    },
    {
     text: 'Parent 4',
     href: '#parent4',
     tags: ['0']
    },
    {
     text: 'Parent 5',
     href: '#parent5',
     tags: ['0']
    }
   ];

   return defaultData;
  }

3、JS數(shù)據(jù)綁定,加載TreeView

$(function() {
 var $checkableTree = $('#treeview-checkable')
    .treeview({
     data: getTvStateData(), //數(shù)據(jù)
     showIcon: false,
     showCheckbox: true,
     levels: 1,
     onNodeChecked: function(event, node) { //選中節(jié)點(diǎn)
      var selectNodes = getChildNodeIdArr(node); //獲取所有子節(jié)點(diǎn)
      if (selectNodes) { //子節(jié)點(diǎn)不為空,則選中所有子節(jié)點(diǎn)
       $('#treeview-checkable').treeview('checkNode', [selectNodes, { silent: true }]);
      }
      var parentNode = $("#treeview-checkable").treeview("getNode", node.parentId);
      setParentNodeCheck(node);
     },
     onNodeUnchecked: function(event, node) { //取消選中節(jié)點(diǎn)
      var selectNodes = getChildNodeIdArr(node); //獲取所有子節(jié)點(diǎn)
      if (selectNodes) { //子節(jié)點(diǎn)不為空,則取消選中所有子節(jié)點(diǎn)
       $('#treeview-checkable').treeview('uncheckNode', [selectNodes, { silent: true }]);
      }
     },
     onNodeExpanded:
      function(event, data) {
       if (data.nodes === undefined || data.nodes === null) {
        
       } else if (data.tags[0] === "2") {
        alert("Tags 2");
       } else {
        alert("1111");
       }
      }
    });
 });

4、選中/取消選中父節(jié)點(diǎn)時(shí),選中/取消選中所有子節(jié)點(diǎn),以及選中所有子節(jié)點(diǎn)時(shí),選中父節(jié)點(diǎn)

function getChildNodeIdArr(node) {
   var ts = [];
   if (node.nodes) {
    for (x in node.nodes) {
     ts.push(node.nodes[x].nodeId);
     if (node.nodes[x].nodes) {
      var getNodeDieDai = getChildNodeIdArr(node.nodes[x]);
      for (j in getNodeDieDai) {
       ts.push(getNodeDieDai[j]);
      }
     }
    }
   } else {
    ts.push(node.nodeId);
   }
   return ts;
  }

  function setParentNodeCheck(node) {
   var parentNode = $("#treeview-checkable").treeview("getNode", node.parentId);
   if (parentNode.nodes) {
    var checkedCount = 0;
    for (x in parentNode.nodes) {
     if (parentNode.nodes[x].state.checked) {
      checkedCount ++;
     } else {
      break;
     }
    }
    if (checkedCount === parentNode.nodes.length) {
     $("#treeview-checkable").treeview("checkNode", parentNode.nodeId);
     setParentNodeCheck(parentNode);
    }
   }
  }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

个旧市| 庄浪县| 福安市| 普陀区| 龙海市| 周宁县| 井陉县| 突泉县| 石林| 三原县| 杭州市| 屯留县| 乌鲁木齐市| 芒康县| 巴彦淖尔市| 青阳县| 广平县| 大竹县| 浙江省| 台江县| 吉水县| 凤山市| 长武县| 正蓝旗| 江永县| 琼中| 马山县| 亳州市| 红原县| 内丘县| 余江县| 荔波县| 甘南县| 安丘市| 兴文县| 兴隆县| 盐城市| 开封市| 隆林| 巫溪县| 中卫市|