亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jQuery zTree 異步加載添加子節點重復問題

2019-11-19 14:49:13
字體:
來源:轉載
供稿:網友

zTree 簡介

    zTree 是一個依靠 jQuery 實現的多功能 “樹插件”。優異的性能、靈活的配置、多種功能的組合是 zTree 最大優點。

    zTree 是開源免費的軟件(MIT 許可證)。如果您對 zTree 感興趣或者愿意資助 zTree 繼續發展下去,可以進行捐助。

  • zTree v3.0 將核心代碼按照功能進行了分割,不需要的代碼可以不用加載
  • 采用了 延遲加載 技術,上萬節點輕松加載,即使在 IE6 下也能基本做到秒殺
  • 兼容 IE、FireFox、Chrome、Opera、Safari 等瀏覽器
  • 支持 JSON 數據
  • 支持靜態 和 Ajax 異步加載節點數據
  • 支持任意更換皮膚 / 自定義圖標(依靠css)
  • 支持極其靈活的 checkbox 或 radio 選擇功能
  • 提供多種事件響應回調
  • 靈活的編輯(增/刪/改/查)功能,可隨意拖拽節點,還可以多節點拖拽喲
  • 在一個頁面內可同時生成多個 Tree 實例
  • 簡單的參數配置實現 靈活多變的功能

原始問題

//添加結點, 產品和版本function addNode(event) {  rMenu.css({ "visibility": "hidden" });  var treeNode = zTree.getSelectedNodes()[0];  var pid;  var nodeName;  var treelevel;  if (!treeNode && event.target.tagName.toLowerCase() != "button" && $(event.target).parents("a").length == 0) {   //添加產品結點pid = 0;   treeNode = null;   treelevel = 1;  } else if (treeNode) {   //添加版本結點pid = treeNode.id;  treelevel = 2;  }  $.post(   "AddNode.action",   { type: treelevel, id: pid },   function(nodeIdAndName) {    var params = /([^/|]+)/|([^/|]+)/.exec(nodeIdAndName);    if (!((!treeNode && event.target.tagName.toLowerCase() != "button" && $(event.target).parents("a").length == 0) || treeNode.open)) {     zTree.expandNode(treeNode, true);    }    treeNode = zTree.addNodes(treeNode, { id: params[1], pid: pid, isParent: "true", name: params[2], editable: "true", treelevel: treelevel });   });}

原本直接添加子節點的時候,如果父節點沒有展開,會添加兩個一樣的子節點(第一次的時候);后來我對父節點是否展開進行了判斷,但是卻變成了如果父節點展開,會添加兩個一樣的子節點(第一次的時候),這個問題要怎么解決呢?

辦法一 

if (!((!treeNode && event.target.tagName.toLowerCase() != "button" && $(event.target).parents("a").length == 0) || treeNode.open)) {     zTree.expandNode(treeNode, true);    }    treeNode = zTree.addNodes(treeNode, { id: params[1], pid: pid, isParent: "true", name: params[2], editable: "true", treelevel: treelevel });

改成

if(!treeNode && event.target.tagName.toLowerCase() != "button" && $(event.target).parents("a").length == 0)    {     treeNode = zTree.addNodes(treeNode, { id: params[1], pid: pid, isParent: "true", name: params[2], editable: "true", treelevel: treelevel });    }    else if(treeNode.open)    {     if(treeNode.isParent)     {      zTree.reAsyncChildNodes(treeNode, "refresh");     }     else     {      treeNode.isParent=true;      zTree.reAsyncChildNodes(treeNode, "refresh");     }    }    else    {     zTree.expandNode(treeNode, true);     treeNode = zTree.addNodes(treeNode, { id: params[1], pid: pid, isParent: "true", name: params[2], editable: "true", treelevel: treelevel });    }

問題就可以解決了,但是有沒有優化呢?感覺改后的代碼分類太多了 

最優辦法

貌似不用這么麻煩吧?前兩天回答了類似的問題。

1、點擊添加子節點后,就直接 ajax 傳給后臺保存數據,捕獲 success 事件

2、ajax success 時,利用 treeNode.zAsync 屬性就可以知道此父節點是否進行過異步加載,如果為 false 那么直接 reAsyncChildNodes 刷新, 如果為 true 那么利用 addN...

if ((!treeNode && event.target.tagName.toLowerCase() != "button" && $(event.target).parents("a").length == 0) || treeNode.zAsync)      treeNode = zTree.addNodes(treeNode, { id: params[1], pid: pid, isParent: "true", name: params[2], editable: "true", treelevel: treelevel });    else     zTree.reAsyncChildNodes(treeNode, "refresh");

總結

以上所述是小編給大家介紹的jQuery zTree 異步加載添加子節點重復問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美高清第一页| 久久精品视频99| 欧美专区福利在线| 一区二区欧美激情| 欧美成人一二三| 日韩精品中文字幕视频在线| 国产精品视频播放| 97**国产露脸精品国产| 九九精品视频在线| 日韩电影免费观看在线| 欧美乱妇40p| 久久精品国产欧美亚洲人人爽| 日本久久久久亚洲中字幕| 国产一区二区av| 国产91精品高潮白浆喷水| 亚洲国产毛片完整版| 亚洲深夜福利网站| 欧美成人精品三级在线观看| 久久久精品久久久久| 亚洲www在线观看| 日韩高清免费观看| 久久久久久综合网天天| 538国产精品一区二区免费视频| 国产成人拍精品视频午夜网站| 日韩电视剧免费观看网站| 亚洲视频欧美视频| 日韩av在线免播放器| 久久久久久久久久久久av| 久久成人精品视频| 日本久久中文字幕| 国产精品免费一区| 久久国产精品久久久| 国产一区二区三区直播精品电影| www.久久撸.com| 久久成人亚洲精品| 欧美性少妇18aaaa视频| 久久精品99无色码中文字幕| 成人免费福利在线| 亚洲黄色免费三级| xxx成人少妇69| 欧美一级片在线播放| 伊人久久五月天| 日韩综合中文字幕| 欧美精品一二区| 人人澡人人澡人人看欧美| 在线日韩欧美视频| 亚洲综合色激情五月| 久久久久亚洲精品成人网小说| 自拍亚洲一区欧美另类| 色偷偷av一区二区三区乱| 精品激情国产视频| 亚洲人成电影网站色xx| 中文字幕日韩综合av| 国产美女久久精品香蕉69| 国产+成+人+亚洲欧洲| 国产女精品视频网站免费| 成人免费福利视频| 欧美电影在线免费观看网站| 久久99青青精品免费观看| 亚洲国产欧美一区二区三区同亚洲| 久久久久亚洲精品成人网小说| 国产精品网站大全| 日韩精品视频观看| 在线看福利67194| 欧美性猛交xxxx乱大交蜜桃| 国产亚洲欧美一区| 欧美日韩在线视频一区| 91亚洲精品一区二区| 中文字幕9999| 亚洲欧美在线磁力| 欧美激情图片区| 欧美日韩国产色视频| 欧美国产日本高清在线| 欧美激情国产高清| 亚洲欧洲在线视频| 色老头一区二区三区在线观看| 91国产在线精品| 日本韩国欧美精品大片卡二| 亚州欧美日韩中文视频| 日韩中文在线不卡| 亚洲精品视频免费在线观看| 国产精品精品久久久久久| 欧美黄色免费网站| 日韩在线中文字| 亚洲美女视频网| 国模gogo一区二区大胆私拍| 国产精品视频xxx| 国产精品第8页| 国产成+人+综合+亚洲欧洲| 欧美国产激情18| 欧美成人精品在线播放| 日韩av中文字幕在线免费观看| 欧美—级a级欧美特级ar全黄| 久久久久久亚洲| 日本精品视频在线播放| 国产精品草莓在线免费观看| 国产69精品久久久| 一区二区在线免费视频| 国产成人精品一区二区| 国外成人在线视频| 国产精品人人做人人爽| 日韩av在线精品| 国产精品永久免费视频| 91久久国产婷婷一区二区| 亚洲女人天堂网| 亚洲精品美女久久| 亚洲欧美制服丝袜| 国产亚洲欧洲黄色| 2020久久国产精品| 欧美国产亚洲视频| 国产日韩欧美黄色| 97视频免费看| 欧美性在线观看| 久久精品国产一区| 日韩av免费看网站| 亚洲第五色综合网| 国产69精品久久久| 亚洲香蕉在线观看| 欧美日韩国产中文字幕| 成人av资源在线播放| 亚洲精品理论电影| 91精品啪aⅴ在线观看国产| 久久久久久久久久亚洲| 久久亚洲国产成人| 亚洲的天堂在线中文字幕| 91精品国产网站| 中文在线资源观看视频网站免费不卡| 国产精品成人av在线| 国产一区玩具在线观看| 亚洲精品久久久久久久久久久久| 国产精品女视频| 亚洲欧美国产一区二区三区| 国产精品国模在线| 日本一区二区在线播放| y97精品国产97久久久久久| 欧美激情影音先锋| 欧美日韩在线视频一区二区| 亚洲女人天堂成人av在线| 成人羞羞国产免费| 国产精品直播网红| 最好看的2019的中文字幕视频| 亚洲成人xxx| 国产999精品视频| 欧美大肥婆大肥bbbbb| 久久久这里只有精品视频| 国产成人鲁鲁免费视频a| 精品国产自在精品国产浪潮| 久久成人精品电影| 精品国产区一区二区三区在线观看| 国产精品一香蕉国产线看观看| 91精品国产乱码久久久久久蜜臀| 波霸ol色综合久久| 国产成人精品久久二区二区| 91精品国产91久久久久久最新| 亚洲裸体xxxx| 影音先锋日韩有码| 亚洲自拍偷拍网址| 91精品视频专区| 国产精品自拍小视频| 久久亚洲欧美日韩精品专区| 成人激情电影一区二区| 91国产中文字幕| 精品国模在线视频| 久久久精品影院|