2014-05-14 4 views
1

можно показать предупреждение или распечатать в консоли дочерние узлы родителя, когда пользователь удаляет узел. Другими словами, когда пользователь бросает любой узел на другой узел, я хочу показать предупреждение (количество дочерних элементов), которому удаляется узел.Как подсчитать дочерние элементы родителя при удалении узла?

вот моя скрипка. http://jsfiddle.net/fuu94/116/

Пожалуйста, запустите скрипку, разверните узел «c». перетащите «c-a» и опустите «a», показывая 0 (ноль), потому что нет детей. Когда он падает на «b», он показывает 2 «два», потому что у этого узла есть двое детей.

$('#tree').jstree({ 
    core: { 
     check_callback: function (op, node, node_parent) { 
      return op == 'move_node' ? node_parent.id.indexOf('not') === -1 : true; 
     } 
    }, 
    dnd: { 
     is_draggable: function (x) { 
      return true; 
     } 
    }, 
    "plugins": ["dnd"] 
}); 

ответ

0

Возможно, произошло событие move_node. Но это срабатывает после падения. Я предполагаю, что мы можем предположить, что целевой узел имел n-1 детей до падения, так как jstree не позволяет отбрасывать узел в его родитель.

$tree = $('#tree').jstree({ 
    core: { 
     check_callback: function(op, node, node_parent) { 
      return op == 'move_node' ? node_parent.id.indexOf('not') === -1 : true; 
     } 
    }, 
    dnd: { 
     is_draggable: function(x) { 
      return true; 
     } 
    }, 
    "plugins": ["dnd"] 
}); 
$tree.on('move_node.jstree', function(e, data) { 
    target = $tree.jstree('get_node', data.parent, false); 
    children = target.children.length-1; 
    alert(children); 
}); 
+0

wait check? –

+0

Позвольте мне объяснить больше, если вы перетащите элемент «c-a» в «a». он дает разрешение на добавление узла в «a». но если элемент «c-a» хочет добавить на «b». он не добавит .because –

+0

@tutboHz, вы думаете в практическом смысле. Но мы можем ограничить узел, чтобы он не упал, если к кому у него выпал ребенок –

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