2015-06-24 2 views
2

У меня есть две ветки Dyna. Хотите, чтобы перетащить в дерево, но не между tress.Please руководство мне, как disbale перетащить и падение между tress.Disbale перетащите перетаскивание между двумя dyna tress

 $("#tree1") 
     .dynatree(
       { 
        onActivate : function(node) { 
         alert("You activated " + node.data.title); 
        }, 
        persist : true, 
        dnd : { 
         onDragStart : function(node) { 
          logMsg("tree.onDragStart(%o)", node); 
          return true; 
         }, 
         onDragStop : function(node) { 
          logMsg("tree.onDragStop(%o)", node); 
         }, 
         autoExpandMS : 1000, 
         preventVoidMoves : true, 

         onDragEnter : function(node, sourceNode) { 

          logMsg("tree.onDragEnter(%o, %o)", node, 
            sourceNode); 
          return true; 
         }, 
         onDragOver : function(node, sourceNode, hitMode) { 

          logMsg("tree.onDragOver(%o, %o, %o)", node, 
            sourceNode, hitMode); 

          if (node.isDescendantOf(sourceNode)) { 
           return false; 
          } 

          if (!node.data.isFolder && hitMode === "over") { 
           return "after"; 
          } 
         }, 
         onDrop : function(node, sourceNode, hitMode, ui, 
           draggable) { 

          logMsg("tree.onDrop(%o, %o, %s)", node, 
            sourceNode, hitMode); 
          sourceNode.move(node, hitMode); 

         }, 
         onDragLeave : function(node, sourceNode) { 

          logMsg("tree.onDragLeave(%o, %o)", node, 
            sourceNode); 
         } 
        }, 
        children : [ 

        { 
         title : "Public", 
         isFolder : true, 
         children : [ { 
          "title" : "Item 1" 
         }, { 
          "title" : "Folder 2", 
          "isFolder" : true, 
          "key" : "folder2", 
          "children" : [ { 
           "title" : "Sub-item 2.1", 
           "isFolder" : false 
          }, { 
           "title" : "Sub-item 2.2" 
          } ] 
         }, { 
          "title" : "Folder 3", 
          "isFolder" : true, 
          "key" : "folder3", 
          "children" : [ { 
           "title" : "Sub-item 3.1", 
           "isFolder" : false 
          }, { 
           "title" : "Sub-item 3.2", 
           "isFolder" : false 
          } ] 
         }, { 
          "title" : "Item 5" 
         } ] 
        } ] 

       }); 

и Дерево2 является

 $("#tree2") 
     .dynatree(
       { 
        onActivate : function(node) { 
         alert("You activated " + node.data.title); 
        }, 
        persist : true, 
        dnd : { 
         onDragStart : function(node) { 
          logMsg("tree.onDragStart(%o)", node); 
          return true; 
         }, 
         onDragStop : function(node) { 
          logMsg("tree.onDragStop(%o)", node); 
         }, 
         autoExpandMS : 1000, 
         preventVoidMoves : true, 

         onDragEnter : function(node, sourceNode) { 

          logMsg("tree.onDragEnter(%o, %o)", node, 
            sourceNode); 
          return true; 
         }, 
         onDragOver : function(node, sourceNode, hitMode) { 

          logMsg("tree.onDragOver(%o, %o, %o)", node, 
            sourceNode, hitMode); 

          if (node.isDescendantOf(sourceNode)) { 
           return false; 
          } 

          if (!node.data.isFolder && hitMode === "over") { 
           return "after"; 
          } 
         }, 
         onDrop : function(node, sourceNode, hitMode, ui, 
           draggable) { 

          logMsg("tree.onDrop(%o, %o, %s)", node, 
            sourceNode, hitMode); 
          sourceNode.move(node, hitMode); 

         }, 
         onDragLeave : function(node, sourceNode) { 

          logMsg("tree.onDragLeave(%o, %o)", node, 
            sourceNode); 
         } 
        }, 
        children : [ 

        { 
         title : "Public", 
         isFolder : true, 
         children : [ { 
          "title" : "Item 1" 
         }, { 
          "title" : "Folder 2", 
          "isFolder" : true, 
          "key" : "folder2", 
          "children" : [ { 
           "title" : "Sub-item 2.1", 
           "isFolder" : false 
          }, { 
           "title" : "Sub-item 2.2" 
          } ] 
         }, { 
          "title" : "Folder 3", 
          "isFolder" : true, 
          "key" : "folder3", 
          "children" : [ { 
           "title" : "Sub-item 3.1", 
           "isFolder" : false 
          }, { 
           "title" : "Sub-item 3.2", 
           "isFolder" : false 
          } ] 
         }, { 
          "title" : "Item 5" 
         } ] 
        } ] 

       }); 

Пожалуйста, наставит меня о том, как я должен добиться того, чтобы Дерево1 Узлы могут быть ДНА с у меня Дерево1 и Trre2 Узлы могут быть ДНА с в Дерево2. И ограничьте, что Tree1 Nodes не следует отбрасывать в Tree2 и наоборот.

+0

Что вы пробовали? пожалуйста, добавьте свой код в свой вопрос –

+0

Привет Можете ли вы, пожалуйста, направить меня на это, Я добавил фрагменты кода, как вас спрашивали – user1525365

ответ

0

Вы должны использовать:

onDragEnter: function (targetNode, sourceNode) { 
    // Prevent dropping a node from a foreign tree 
    if (targetNode.tree !== sourceNode.tree) { 
     return false; 
    } 
    return true; 
} 

Он проверяет, является ли дерево узла, который вы хотите переместить (SourceNode) одно и то же дерево как дерево узла, на котором вы хотите переместить (targetNode). Если два дерева не совпадают, это предотвращает падение.

Смежные вопросы