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節點增刪改
- 【ztree系列】節點的增刪改
- 點選刪除按鈕彈出是否刪除提示框
- 彈出框外掛layer使用
- RAC刪除節點失敗重啟大法解決
- 解決Windows安全性登入彈框的問題Windows
- iOS解決鍵盤彈出遮擋輸入框問題iOS
- javascript實現點選彈出確認刪除警告框程式碼JavaScript
- JavaScript ·刪除 confirm彈出確認框JavaScript
- jquery刪除記錄彈出提示框jQuery
- JavaScript刪除節點自身JavaScript
- Oracle Rac 刪除節點Oracle
- echart關係圖平分節點刪除時自動平衡問題
- 點選刪除彈出提示是否刪除程式碼
- layerUI框架下 ztree刪除按鈕取消實現( layer.confirm confirm beforeRemove onRemove)UI框架REM
- Windows10系統中刪除檔案沒有彈出刪除提示框如何解決Windows
- jQuery如何刪除元素節點jQuery
- bootstrap-彈框問題-居中boot
- javascript實現的點選彈出刪除提示框程式碼例項JavaScript
- onnx 增刪改查,修改節點,刪除節點,修改input,output
- 解決除錯不能命中斷點的問題除錯斷點
- amazeUI復擇框問題解決UI
- 安裝crs,無法新增節點問題解決
- LINUX+10.2.0.3 RAC刪除、增加節點所遇問題記錄Linux
- 【RAC】刪除RAC資料庫節點(二)——刪除ASM資料庫ASM
- 【RAC】刪除RAC資料庫節點(五)——刪除ONS資料庫
- 直播平臺原始碼,關於彈出框中輸入框被遮擋問題解決原始碼
- 解決刪除Linux下刪除檔案過多而受shell限制的問題Linux
- redis cluster節點/新增刪除操作Redis
- mongodb副本集新增刪除節點MongoDB
- Hadoop增加和刪除節點Hadoop
- 【RAC】刪除RAC資料庫節點(三)——刪除監聽資料庫
- layUI layer彈框按鈕 : 確認,取消,關閉事件UI事件
- 解決“阻塞效應”-解決指令碼檔案下載阻塞網頁渲染的問題指令碼網頁
- 短視訊app開發,左滑刪除或長按彈出刪除選擇框APP
- networkx基礎用法:新增節點、新增邊、刪除節點、刪除邊、計算度、賦權重
- 刪除oracle10g rac(rhel4)節點_節點Oracle
- js中dom節點刪除remove方法JSREM