2017-02-10 41 views
1

我使用的是ngDraggable模塊,並且所有工作都很好,除了輸入框被禁用時,它們被放置在可拖動的div內。我需要它們保持可編輯狀態,以便用戶可以輸入文本。AngularJS,ngDraggable - 輸入框不可編輯的可拖動元素

我分叉現有搗鼓演示目的 http://jsfiddle.net/kkyk0j4x/10/

<div ng-app="test" ng-controller="testCtrl"> 
<div id="container"> 
    <div class="shape" ng-draggable='dragOptions'> 
     <input type="text" /><!--THIS IS NOT EDITABLE--> 
    </div> 
    <br/> 
    <br/> 
    <br/> 
    <input type="text"><!--THIS IS EDITABLE--> 
</div> 

並不完全知道問題出在哪裏的來源和如何解決它。任何幫助表示讚賞。

回答

2

我發現問題來自哪裏,希望這有助於某人。 在ngDraggable模塊內部,mouseDown事件中有一個preventDefault函數。

只需發表評論,您的輸入框在HTML中的可拖動元素內將變爲可編輯。在ngDraggable插件這個地方位於功能onlongpress的最新版本:

  var onlongpress = function(evt) { 
       if(! _dragEnabled)return; 
       //evt.preventDefault(); <---- this line 
+0

在庫的最新版本,它需要的是

// Bind mousedown event elem.on('mousedown', function (e) { //e.preventDefault(); ....... 

UPD(@Andremoniy)在一個函數onlongpress中進行了評論。 – Andremoniy