2017-02-23 70 views
0

我使用jsTree。当我删除一个文件,该页面不刷新。我试图用这样的代码:jsTree删除后删除页面

elem.jstree("refresh"); 

但它什么都不做。在控制台中没有错误或一些有用的消息。

利用这一点,建立文件管理器:

elem.jstree({'core': 
    { 
     'data': files, 
     'themes' : { 'name' : 'default-dark-large' }, 
     'dblclick_toggle': false, 
     'check_callback' : function (operation) 
     { 
      return operation === 'rename_node' || 'delete_node' ? true : false; 
     } 
    }, 
     'plugins': ['sort', 'types', 'wholerow'], 
     'types' : { 'file' : { 'icon' : 'jstree-file' } } 
    }) 

     $(window).keyup(function (e) 
    { 
     if (e.originalEvent.keyCode === 17) 
     { 

      e.preventDefault(); 

      var old_value = e.target.innerText, 
       splitted_old_value = old_value.split('.'); 

      var finded = file_obj.getSubMenuItem(files, old_value); 
      finded.text = old_value; 

      var splitted_old_path = finded.path.split('/'); 
      splitted_old_path[splitted_old_path.length-1] = old_value; 
      var new_path = splitted_old_path.join('/'); 
      console.log("Path: " + new_path); 

      elem.jstree("refresh"); 

      $.ajax({ 
       method: 'post', 
       url: 'ajax_manager.php?link=deleteFile', 
       data: { file: new_path }, 
       dataType: 'json', 
       success: function (result) 
       { 
        if (result !== false) 
        { 
         swal({ 
          type: "success", 
          title: 'Sikeres törlés!', 
          timer: 1000 
         }); 
        } 
        else 
        { 
         swal('A tartalom változtatása sikertelen!'); 
        } 
       }, 
       error: function(jqXHR) 
       { 
        console.log(jqXHR.responseText); 
       } 
      }) 


     } 
    }); 

有人能帮助我,好吗?

+0

请显示如何删除文件。你删除一个节点? –

+0

不,我删除ajax请求发送php unlick被点击的文件,我更新了第一篇文章的代码 – Achy

+0

ajax调用和树有什么共同点?你监视的“ctrl”按钮 - 它发生在树上吗?你怎么知道要删除哪个树节点? –

回答

0

当您的ajax调用成功返回时,您应该使用delete_node (obj)(如jstree api中所示)从js树中删除该节点。

您现在所做的是调用刷新而不更改树数据。