jsTree drag_check не работает

У меня есть jsTree, использующий плагин dnd, позволяющий перетаскивать элементы дерева для изменения их положения. Однако я заметил, что индекс неверен в зависимости от того, отбрасываете ли вы элемент до или после объекта, и после многих часов гугления о том, как исправить проблему с индексом, я пришел к выводу, что было бы проще отключить после если это не последний узел дерева подмножества

Я использую следующий код для вызова настройки плагина dnd:

    'dnd': {
        'drop_finish': function (data) {
            alert("hi");
        },
        'drag_check': function (data) {
            alert('hi1');
            if (data.r.attr('id') == 'RootNode') {
                return false;
            } else if (data.r.hasClass('jstree-last')) {
                return {
                    after: true,
                    before: true,
                    inside: true
                };
            } else {
                return {
                    after: false,
                    before: true,
                    inside: true
                };
            }
        }
    }

тем не менее, hi1 никогда не получает предупреждения (но hi делает это после того, как я бросил элемент), поэтому я все еще могу удалить элементы после. Я пытался выяснить, как вызвать проверку перетаскивания, и пробовал много вещей, таких как добавление класса jstree-drop и другие вещи, которые были предложены на этом сайте, но я просто не могу получить предупреждение hi1.

Любая помощь будет оценена в решении этой проблемы

Спасибо


person Community    schedule 17.01.2013    source источник


Ответы (1)


похоже, что плагин «dnd» используется для внешнего перетаскивания. Вы можете использовать check_move, чтобы предотвратить переход на последнюю позицию в узле:

"crrm": {
    "move": {
        "check_move": function(m) {
        var length = $(m.np).find("ul:first > li").length,
            afterLast = length == m.cp;
        if (length > 0 && afterLast) {
            return false;
        }
        return true;                            
     }
 }
person slowkot    schedule 20.03.2013