layerUI框架下 ztree刪除按鈕取消實現( layer.confirm confirm beforeRemove onRemove)

yqwayward發表於2017-10-22
   //之前在onRemove方法裡糾結了很久,最後的結果是沒用他,confirm 在beforeRemove  裡不知道為什麼會不被阻塞直接彈框一閃而過執行(各種奇葩),經過一番努力這是最後的結果,功能可以實現。
function beforeRemove (treeId, treeNode){//刪除節點之前
var flag=false;//此處必須定義一個變數,不然還沒確定就把節點從樹上刪除
        layer.confirm("確認要刪除當前節點("+treeNode.catalogName+")及其子節點嗎?", {
            btn: ['確定','取消']
        }, function(){
            var parms = {
                'id': treeNode.id,
                'catalogId': treeNode.catalogId,
                'catalogName': treeNode.catalogName,
                'catalogPath': treeNode.catalogPath
            };
$.postJSON("${webRoot}/materialcatalog/delete", parms, function (result) {

            if (result.code == '0') {
                flag=true;
               alert(flag);
                var treeObj = $.fn.zTree.getZTreeObj("busTree");
                var nodes = treeObj.getSelectedNodes();
                if (nodes && nodes.length>0) {
                    treeObj.removeChildNodes(nodes[0]);//刪除當前節點子節點
               treeObj.removeNode(nodes[0]);//刪除當前節點
                }
                layer.closeAll('dialog');
            } else {
                alertMsg(result.msg);
                layer.close(index);
            }
    })
    }   , function(index){
        layer.close(index);
        flag=false;
    })
    return flag;
}
/*
*  重寫post
*
* */
$.postJSON = function (url, data, callback) {
    return jQuery.ajax({
        'type': 'POST',
        'url': url,
        'contentType': 'application/json',
        'data': JSON.stringify(data),
        'dataType': 'json',
        'success': callback
    });
};

相關文章