AngularJS,ngDraggable-可拖动元素内的输入框不可编辑
我使用的是NGDRAGABLE模块,所有模块都可以正常工作,只是当输入框放在可拖动的div中时会被禁用。我需要它们保持可编辑状态,以便用户可以输入文本 为了演示的目的,我用叉子叉了一把现有的小提琴AngularJS,ngDraggable-可拖动元素内的输入框不可编辑,angularjs,input,drag-and-drop,draggable,Angularjs,Input,Drag And Drop,Draggable,我使用的是NGDRAGABLE模块,所有模块都可以正常工作,只是当输入框放在可拖动的div中时会被禁用。我需要它们保持可编辑状态,以便用户可以输入文本 为了演示的目的,我用叉子叉了一把现有的小提琴 不确定问题来自何处以及如何解决。非常感谢您的帮助。我找到了问题的根源,希望这能对其他人有所帮助。 在ngDraggable模块中,mouseDown事件中有一个preventDefault函数 只需注释这一行,HTML中可拖动元素中的输入框将变得可编辑 // Bind mousedown
不确定问题来自何处以及如何解决。非常感谢您的帮助。我找到了问题的根源,希望这能对其他人有所帮助。 在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
var onlongpress=函数(evt){
如果(!_dragEnabled)返回;
//evt.preventDefault();使用最新版本的ngDraggable,您必须定义ng cancel drag=“true”
在包含可编辑元素或需要其他鼠标交互的元素上在最新版本的库中,需要在函数onlongpress
中对其进行注释。注释掉这一行将引入简单单击时触发拖动事件的问题。有关最新版本的NgDragable,请参阅正确答案
var onlongpress = function(evt) {
if(! _dragEnabled)return;
//evt.preventDefault(); <---- this line