layer彈框刪除ztree節點非阻塞問題解決
在ztree裡面,刪除一個節點的時候,會彈出一個彈框詢問,是否刪除,本來用的是網頁自帶的confirm彈框,根據公司的業務需求,要用到layer彈框刪除,這個時候,就出現了一個問題。
問題:觸發刪除事件之後,彈出layer彈框,但是沒有點選確定或者取消,就已經將選中的節點刪除了。
原因:layer.confirm不能阻塞事件(confirm是網頁自帶的,有阻塞事件),不管有沒有確定按鈕,就已經執行ztree裡面的刪除節點事件function zTreeOnRemove(event, treeId, treeNode)
造成這個問題。
解決辦法:棄用ztree自帶的節點刪除
原來的方法:
// 刪除之前事件
function zTreeBeforeRemove(treeId, treeNode) {
var flag = true;
$.ajax({
url : basePath + "/organ/isDel/" + treeNode.id,
type : "get",
async : false,
success : function(data) {
if(data == 0){
/alert(i18n_unDel);/
layer.msg('i18n_unDel',{icon:5,time:1000});
flag = false;
}else{
/flag = confirm(i18n_conf);/
flag =layer.confirm("確認要刪除嗎,刪除後不能恢復", { title: "刪除確認" }, function (index) {
layer.close(index);
});
}
}
});
return flag;
}
// 刪除節點事件
function zTreeOnRemove(event, treeId, treeNode) {
$.ajax({
url : basePath + "/organ/" + treeNode.id,
type : "DELETE",
success : function(data) {
initTree();
}
});
}
修改之後:
// 刪除之前事件
function zTreeBeforeRemove(treeId, treeNode) {
layer.confirm("確認要刪除嗎,刪除後不能恢復", { title: "刪除確認" }, function (index) {
new Promise(function(resolve,reject){
$.ajax({
url : basePath + "/organ/isDel/" + treeNode.id,
type : "get",
async : false,
success : function(data) {
if(data == 0){
layer.msg('i18n_unDel',{icon:5,time:1000});
}else{
return resolve(null)
}
}
});
}).then(function(){
$.ajax({
url : basePath + "/organ/" + treeNode.id,
type : "DELETE",
success : function(data) {
initTree();
return Promise.resolve(null)
}
});
}).then(function(){
zTreeObj.removeNode(treeNode,false)
layer.close(index);
}).catch(function(error){
if(error){
layer.msg(error,{icon:5,time:1000});
}
})
});
return false;
}
// 刪除節點事件
function zTreeOnRemove(event, treeId, treeNode) {
}
原文作者:祈澈姑娘 技術部落格:https://www.jianshu.com/u/05f416aefbe1
90後前端妹子,愛程式設計,愛運營,文藝與程式碼齊飛,魅力與智慧共存的程式媛一枚。
相關文章
- 【ztree】zTree節點增刪改
- 點選刪除按鈕彈出是否刪除提示框
- 關於layer.open彈框
- 解決Windows安全性登入彈框的問題Windows
- ztree 篩選選中節點
- echart關係圖平分節點刪除時自動平衡問題
- 【連結串列問題】刪除單連結串列的中間節點
- XML DOM 刪除節點概述XML
- amazeUI復擇框問題解決UI
- onnx 增刪改查,修改節點,刪除節點,修改input,output
- 直播平臺原始碼,關於彈出框中輸入框被遮擋問題解決原始碼
- DOM節點刪除方法小結
- mongodb副本集新增刪除節點MongoDB
- redis cluster節點/新增刪除操作Redis
- 【連結串列問題】打卡3:刪除單連結串列的中間節點
- 短視訊app開發,左滑刪除或長按彈出刪除選擇框APP
- networkx基礎用法:新增節點、新增邊、刪除節點、刪除邊、計算度、賦權重
- 解決“阻塞效應”-解決指令碼檔案下載阻塞網頁渲染的問題指令碼網頁
- MyBatisPlus解決邏輯刪除與唯一索引的相容問題MyBatis索引
- layUI layer彈框按鈕 : 確認,取消,關閉事件UI事件
- 【連結串列問題】打卡2:刪除單連結串列的第 K個節點
- 高優非同步任務解決雙重非同步集合點阻塞問題非同步
- JZ18刪除表的節點
- js中dom節點刪除remove方法JSREM
- 通過Observable解決搜尋框問題
- 解決ios環境下點選輸入框頁面被頂起不能自動回彈到底部問題iOS
- LeetCode每日一題:刪除連結串列中的節點(No.237)LeetCode每日一題
- JavaScript刪除元素節點程式碼例項JavaScript
- oracle11g_RAC新增刪除節點Oracle
- 一體機HDATA節點新增和刪除
- VSCode除錯Flutter的問題解決VSCode除錯Flutter
- [Kubernetes]node節點pod無法啟動/節點刪除網路重置
- 刪除事件(解綁事件)/ 刪除事件相容性解決方案事件
- 工作293:調節刪除順序刪除
- 題19. 刪除連結串列的倒數第N個節點
- 解決sqlserver資料庫單一使用者無法刪除的問題SQLServer資料庫
- leetcode----刪除連結串列中的節點LeetCode
- 二叉搜尋樹如何刪除節點