ElFinder - 禁用目录拖放

时间:2012-10-18 11:32:29

标签: jquery drag-and-drop

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

1 个答案:

答案 0 :(得分:1)

终于找到了答案,当我想到解决它需要多长时间时,我很尴尬。

只需找到elFinder.js中的Draggable选项(第465行左右)。将appendTo参数从“body”移除到“”(空),然后就完成了。

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