2017-02-23 138 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樹中刪除該節點。

您現在所做的是調用刷新而不更改樹數據。