Dojo прерывает операцию перетаскивания в dnd / drop / before - PullRequest
3 голосов
/ 14 июля 2010

Я хотел знать, есть ли способ отменить операцию удаления по умолчанию в dojo.Я делаю некоторые пользовательские манипуляции в функции,

dojo.subscribe("/dnd/drop/before", function(source, nodes, iscopy){
     //Custom manipulation
});

И из этой функции я хочу отменить отбрасывание, аналогично тому, что происходит при нажатии клавиши Esc?

Спасибо

Ответы [ 2 ]

2 голосов
/ 15 июля 2010

Вы можете опубликовать тему dnd/cancel, т.е. dojo.publish('/dnd/cancel'), а затем позвонить dojo.dnd.manager().stopDrag(), чтобы отменить удаление.

Но рекомендуемый способ - настроить checkAcceptance() из dojo.dnd.Source для возврата false, когда текущий узел не может быть сброшен. Более подробную информацию вы найдете в dojo dnd's doc .

1 голос
/ 28 мая 2012

Для меня переопределение onDrop работает как шарм. Согласно документ , у меня есть что-то вроде:

var source2 = new dojo.dnd.Source("source", {
        onDrop : function(source, nodes, copy) {
            if (canProceedCondition) {
                this.onDropExternal(source, nodes, copy);
            }           
        }
    });
...