2012-10-18 58 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/