AngularJS,ngDraggable - 输入框在可拖动元素内部不可编辑

时间:2017-02-10 23:21:30

标签: angularjs input drag-and-drop draggable

我正在使用ngDraggable模块,并且一切正常,但输入框被置于可拖动的div内时会被禁用。我需要它们保持可编辑状态,以便用户可以输入文本。

我为了演示目的分叉了一个现有的小提琴 http://jsfiddle.net/kkyk0j4x/10/

%SystemRoot%\System32\inetsrv\config\redirection.config

不完全确定问题的来源以及如何解决问题。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

我发现了问题的来源,并希望这有助于某人。 在ngDraggable模块内,mouseDown事件中有一个preventDefault函数。

只需注释掉该行,您在HTML中的可拖动元素中的输入框就会变得可编辑。

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

UPD(@Andremoniy):在最新版本的ngDraggable插件中,此地点位于函数onlongpress中:

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

答案 1 :(得分:0)

使用最新版本的ngDraggable,您必须在包含可编辑元素或需要其他鼠标交互作用的元素上定义ng-cancel-drag="true"