2017-02-10 42 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