zTree非同步載入時新增子節點總是重複怎麼解決
這次帶給大家zTree非同步載入時新增子節點總是重複怎麼解決,解決zTree非同步載入時加入子節點總是重複的注意事項有哪些,下面就是實戰案例,一起來看一下。
zTree 是一個依靠 jQuery 實現的多功能 「樹插件」。以下透過本文給大家分享jQuery zTree 非同步載入新增子節點重複問題,需要的朋友參考下吧
##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");
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
怎麼發掘空白處隱藏元素Ajax怎麼實作下拉方塊無刷新聯動無new建置詳解#jQuery實作下拉選單導覽以上是zTree非同步載入時新增子節點總是重複怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

許多用戶在現代生活中越來越青睞小米智慧家庭互聯的電子生態,那麼連接米家APP後,你就可以輕鬆用手機來控制連接設備,但是很多用戶們還不知如何將自己的家居添加米家app中,那麼這篇教學攻略將為大家帶來具體連接方法步驟攻略,希望能幫助到各位有需要的小夥伴們。 1.下載米家APP後,建立或登入小米帳號。 2.添加方法:當全新的設備通電後,將手機靠近設備並打開小米電視,正常情況下會彈出連接提示,選擇“確定”即進入設備連接流程。若無提示彈出,也可以手動新增設備,方法是:進入智慧型家庭APP後,點選左下方第1

在購買電腦的時候,不一定會選擇很大的硬碟,這時候如果我們想在win11新增硬碟,可以先安裝購買的新硬碟,然後在電腦裡新增分割區就可以了。 win11新增硬碟教學:1、首先,我們拆開主機,找到硬碟的插槽。 2.找到後,我們先接上“數據線”,一般會有防呆設計,插不進去反個方向即可。 3.隨後將新的硬碟插入硬碟插槽。 4.插入後,將資料線的另一頭接到電腦的主機板上。 5.安裝完成後,就可以裝回主機,並開機了。 6.開機後,我們右鍵“此電腦”,開啟“電腦管理”7、開啟後,點選左下角的“磁碟管理”8、隨後在右邊可以

在win11中,我們可以透過新增桌面捷徑的方法在桌面上快速啟動軟體或文件,而且只需要右鍵需要的文件就可以操作了。 win11新增桌面捷徑:1、開啟“此電腦”,找到你想要新增桌面捷徑的檔案或軟體。 2、找到後,右鍵選取它,點選「顯示更多選項」3、再選擇「傳送到」-「桌面捷徑」4、操作完成後,就可以在桌面上找到捷徑了。

Tampermonkey油猴Chrome擴充功能是一款使用者腳本管理插件,透過腳本提高了使用者的效率和瀏覽體驗,那麼Tampermonkey要怎麼加入新腳本呢?怎麼刪除腳本呢?下面就讓小編給大家解答吧!Tampermonkey怎麼加入新腳本:1、這裡拿GreasyFork來舉例子,打開GreasyFork網頁,輸入要按照的腳本,小編這裡選擇的一鍵離線下載2、選擇一個腳本,進入腳本頁面後可以看到安裝此腳本的按鈕3、點選安裝此腳本,來到安裝介面。這裡點擊安裝就可以了4、我們可以在以安裝的腳本中看到安裝好的一鍵

如何新增PolygonMainnet網路要將MATIC(Polygon)與Metamask連結使用,您需要新增一個名為「PolygonMainnet」的專用網路。使用錯誤的網路位址進行轉入會導致出現問題,所以在轉出$MATIC之前,請務必使用「PolygonMainnet」網路。 Metamask錢包預設連接到以太坊主網,但我們可以很簡單地添加“PolygonMainnet”並使用$MATIC。只需簡單的複製和貼上幾個步驟,就能完成。首先,在Metamask錢包中,點擊右上角的網路選項,選擇「C

Vue中如何將浮水印到圖片中? Vue是一種流行的JavaScript框架,被廣泛使用於建立Web應用程式。有時我們需要在Vue應用程式中為圖片添加浮水印,以保護圖片的版權或增加圖片的可識別性。在本文中,我將向大家介紹一種在Vue中添加浮水印到圖片的方法,並提供對應的程式碼範例。第一步,我們需要在Vue中引入一個用於添加浮水印的第三方函式庫。推薦使用watermarkj
![Outlook卡在新增帳戶[修復]](https://img.php.cn/upload/article/000/887/227/171116770937641.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
當您在Outlook中新增帳戶時遇到問題時,可以嘗試以下解決方案來解決。通常這可能是由網路連線故障、使用者設定檔損壞或其他暫時性問題引起的。透過本文提供的方法,您可以輕鬆解決這些問題,確保您的Outlook能夠正常運作。 Outlook卡在新增帳戶如果您的Outlook在新增帳戶時卡住,請使用下面提到的這些修復程式:中斷並重新連接網路暫時停用防毒軟體建立新的Outlook設定檔嘗試在安全模式下新增帳戶停用IPv6運行Microsoft支援和恢復助理修復辦公室應用程式Outlook新增帳戶需

BSC網路是由加密貨幣交易所幣安開發的高效能區塊鏈,英文全名為BinanceSmartChain即幣安智能鏈。 BSC區塊鏈相容於EVM網絡,因此可以使用MetaMask錢包存取和互動。那麼小狐狸錢包怎麼加BSC網路呢?下面和小編一起來看看吧。 1.MetaMask直接添加BSC網絡首先打開MetaMask錢包,依次點擊右上角頭像–設置–網絡點擊"添加網絡"按鈕進入小狐狸錢包的網絡設置頁面,最新版的Metamask已內置熱門區塊鍊網絡,包括幣安智能鏈。我們只需要點BNBSmartCha
