2012-10-18 43 views
1

有谁知道如何禁用ElFinder 2.x的拖放功能吗?据我所知,这不是通过初始化参数控制的(请随时仔细检查),但是我们删除了一些代码,它们负责拖放文件:ElFinder - 禁止拖放目录

从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

终于找到了答案,它是那么容易,我很尴尬,当我想到过了多长时间我解决它。

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

看看这个博客文章的更多细节,以及如何离开拖动功能,但停止实际droppble事件:http://blog.degree.no/2012/10/disable-drag-and-drop-in-elfinder-2-x/