Я использую Fancytree с в целом хорошими результатами. Тем не менее, я нашел проблему с ДНА. Если предельное значение warnNonNodes равно true, тогда моя функция dragEnter никогда не вызывается. Есть строка кода, которая гласит «if (dndOpts.preventNonNodes &&! NodeData)». На практике noneData всегда неопределенна. Если warnNonNodes имеет значение true, тогда процедура dragEnter () никогда не вызывается? Что я тут не так делаю. Должен ли этот вопрос быть опубликован на GitHub?
Ниже приведен код, который работает. Вызывается процедура dragEnter.
/* Provide some options and routines for drag-and-drop */
dnd5: {
/* Expand nodes after n milliseconds of hovering - default */
autoExpandMS: 1500,
/* Absolute position offset for .fancytree-drop-marker - default */
/* Relative to ..fancytree-title (icon/img near a node accepting drop) */
dropMarkerOffsetX: -24,
/* Additional offset for drop-marker with hitMode = "before"/"after" - default*/
dropMarkerInsertOffsetX: -16,
/* true: Drag multiple (i.e. selected) nodes - default is false*/
multiSource: false,
/* Prevent dropping nodes from different Fancytrees - default is false */
preventForeignNodes: true,
/* Prevent dropping items other than Fancytree nodes - default is false */
preventNonNodes: false,
/* Prevent dropping nodes on own descendants - default */
preventRecursiveMoves: true,
/* Prevent dropping nodes 'before self', etc. - default */
preventVoidMoves: true,
/* Enable auto-scrolling while dragging - default */
scroll: true,
/* Active top/bottom margin in pixel - default */
scrollSensitivity: 20,
/* Pixels per event - default */
scrollSpeed: 5,
/* Events (drag support) */
dragStart: function (node, data) {
console.log('dragStart');
return true;
},
dragDrag: function (node, data) {
console.log('dragDrag');
},
dragEnd: function (node, data) {
console.log('dragEnd');
},
/* Events (drop support) */
dragEnter: function (node, data) {
console.log('dragEnter');
return true;
},
dragOver: function (node, data) {
console.log('dragOver');
},
dragExpand: function (node, data) {
console.log('dragExpand');
return true;
},
dragDrop: function (node, data) {
console.log('dragDrop');
},
dragLeave: function (node, data) {
console.log('dragLeave');
}
},