AngularJS、ngDraggable - 输入框在可拖动元素内不可编辑
AngularJS, ngDraggable - input box not editable inside draggable element
我正在使用一个 ngDraggable 模块,一切正常,除了输入框被禁用,当它们被放置在可拖动的 div 中时。我需要它们保持可编辑状态,以便用户可以输入文本。
我为了演示目的分叉了一个现有的 fiddle
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>
不确定问题出在哪里以及如何解决。感谢任何帮助。
我找到了问题的根源,希望这对某人有所帮助。
在 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
使用最新版本的 ngDraggable,您必须在包含可编辑元素或需要其他鼠标交互的元素上定义ng-cancel-drag="true"
我正在使用一个 ngDraggable 模块,一切正常,除了输入框被禁用,当它们被放置在可拖动的 div 中时。我需要它们保持可编辑状态,以便用户可以输入文本。
我为了演示目的分叉了一个现有的 fiddle 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>
不确定问题出在哪里以及如何解决。感谢任何帮助。
我找到了问题的根源,希望这对某人有所帮助。 在 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
使用最新版本的 ngDraggable,您必须在包含可编辑元素或需要其他鼠标交互的元素上定义ng-cancel-drag="true"