1

有谁知道如何禁用 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); 
            }
            })
4

1 回答 1

1

终于找到答案了,想想自己花了多长时间才解出来,真是太容易了。

只需在 elFinder.js 中找到 Draggable 选项(大约第 465 行)。将 appendTo 参数从“body”删除到“”(空),就完成了。

查看此博客文章了解更多详细信息以及如何保留可拖动功能但停止实际可放置事件:http ://blog.degree.no/2012/10/disable-drag-and-drop-in-elfinder-2 -X/

于 2012-10-18T12:18:59.093 回答