jQuery可拖动输入元素

我试图使用jQuery UI使表单元素可拖动。 例如,按钮,复选框,文本字段等。到目前为止,我没有运气。 你有任何想法如何实现这一目标吗?

技巧包括在输入元素上放置透明div:

div div{ position:absolute; z-index:2; height: 100%; width: 100%; } div input{ position:relative; z-index:1; } 
 
$('body>div').draggable();

也许3年太晚但您可以调度事件并使用以下代码段来获得更期望的行为:

DEMO jsFiddle

 $(".draggable").draggable({ start: function (event, ui) { $(this).data('preventBehaviour', true); } }); $(".draggable").find(":input").on('mousedown', function (e) { var mdown = new MouseEvent("mousedown", { screenX: e.screenX, screenY: e.screenY, clientX: e.clientX, clientY: e.clientY, view: window }); $(this).closest('.draggable')[0].dispatchEvent(mdown); }).on('click', function (e) { var $draggable = $(this).closest('.draggable'); if ($draggable.data("preventBehaviour")) { e.preventDefault(); $draggable.data("preventBehaviour", false) } }); 

我认为这最适合你的要求:)它的可拖动+可resize的输入元素,但你不会失去他们的性质可编辑。

 $(function(){ $('.draggable').draggable().resizable(); }); 

这是我的解决方案: 我的jsFiddle 。

好的输入元素需要是可编辑的,因此使它们可拖动将使它们不可编辑。

将它们包裹在

我强烈建议您使用句柄

最好的解决方案是将它们放入div或span中