有谁知道如何禁用 ElFinder 2.x 的拖放功能?据我所知,这不能通过初始化参数来控制(请随时仔细检查),但我们已经删除了 tree.js 中的一些代码,这些代码负责文件的拖放:
来自 tree.js:
/**
* Navigation tree
*
* @type JQuery
*/
tree = $(this).addClass(treeclass)
// make dirs draggable and toggle hover class
/* DISABLE DRAGGABLE
.delegate('.'+navdir, 'hover', function(e) {
var link = $(this),
enter = e.type == 'mouseenter';
if (!link.is('.'+dropover+' ,.'+disabled)) {
enter && !link.is('.'+root+',.'+draggable+',.elfinder-na,.elfinder-wo') && link.draggable(fm.draggable);
link.toggleClass(hover, enter);
}
})*/
// add/remove dropover css class
.delegate('.'+navdir, 'dropover dropout drop', function(e) {
$(this)[e.type == 'dropover' ? 'addClass' : 'removeClass'](dropover+' '+hover);
})
// open dir or open subfolders in tree
.delegate('.'+navdir, 'click', function(e) {
var link = $(
...... // rest of code ommitted
这禁用了文件拖放,但不是文件夹。为此,我在 cwd.js 中注释掉了另一个委托,但这破坏了打开文件夹的双击事件 - 所以我现在正在解决这个问题。如果有人有更好的解决方案,请随时分享。
在 cwd.js 的第 670 行注释掉以下内容:
.delegate(fileSelector, 'mouseenter.'+fm.namespace, function(e) {
var $this = $(this),
target = list ? $this : $this.children();
if (!$this.is('.'+clTmp) && !target.is('.'+clDraggable+',.'+clDisabled)) {
target.draggable(fm.draggable);
}
})