国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 16:01:24
字體:
來源:轉載
供稿:網友

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

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

1、HTML代碼

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

2、Json數(shù)據

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ù)據綁定,加載TreeView

$(function() { var $checkableTree = $('#treeview-checkable')    .treeview({     data: getTvStateData(), //數(shù)據     showIcon: false,     showCheckbox: true,     levels: 1,     onNodeChecked: function(event, node) { //選中節(jié)點      var selectNodes = getChildNodeIdArr(node); //獲取所有子節(jié)點      if (selectNodes) { //子節(jié)點不為空,則選中所有子節(jié)點       $('#treeview-checkable').treeview('checkNode', [selectNodes, { silent: true }]);      }      var parentNode = $("#treeview-checkable").treeview("getNode", node.parentId);      setParentNodeCheck(node);     },     onNodeUnchecked: function(event, node) { //取消選中節(jié)點      var selectNodes = getChildNodeIdArr(node); //獲取所有子節(jié)點      if (selectNodes) { //子節(jié)點不為空,則取消選中所有子節(jié)點       $('#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é)點時,選中/取消選中所有子節(jié)點,以及選中所有子節(jié)點時,選中父節(jié)點

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);    }   }  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新田县| 凤山市| 台州市| 定结县| 林周县| 乐东| 平乡县| 南岸区| 鲁甸县| 西畴县| 贵港市| 商丘市| 峡江县| 扎兰屯市| 拜城县| 监利县| 灯塔市| 北安市| 历史| 京山县| 望都县| 怀远县| 大关县| 北辰区| 墨竹工卡县| 都昌县| 合江县| 八宿县| 聂荣县| 恩施市| 呼玛县| 广西| 浪卡子县| 烟台市| 吉木萨尔县| 江孜县| 麻栗坡县| 哈密市| 区。| 喀喇| 青冈县|