jQuery可拖动对象内的表单输入是不可编辑的

jQuery可拖动对象内的表单输入是不可编辑的,jquery,forms,input,jquery-ui-sortable,edit,Jquery,Forms,Input,Jquery Ui Sortable,Edit,我试图在一个元素中放入一个表单,jquerysortable在该元素上是活动的。有一个DIV元素,它是可移动的(使用jquerysortable),一个IMG元素,它用作处理程序,用于移动DIV和表单元素,其中包含输入。表单和IMG els都在DIV内。问题是,表单内的输入无法编辑。当我关闭sortable时,它工作正常 我是做错了什么还是一个bug?有办法解决吗 非常感谢我已经找到了解决办法。因为我使用ajax加载和发送表单,所以在加载表单(所有EL都可排序)时,我不会运行代码使其可排序,然后

我试图在一个元素中放入一个表单,jquerysortable在该元素上是活动的。有一个DIV元素,它是可移动的(使用jquerysortable),一个IMG元素,它用作处理程序,用于移动DIV和表单元素,其中包含输入。表单和IMG els都在DIV内。问题是,表单内的输入无法编辑。当我关闭sortable时,它工作正常

我是做错了什么还是一个bug?有办法解决吗


非常感谢

我已经找到了解决办法。因为我使用ajax加载和发送表单,所以在加载表单(所有EL都可排序)时,我不会运行代码使其可排序,然后在发送表单时,我会使其再次可排序。不是解决方案,而是为我做了这项工作。

解决方案是在可排序调用之后将单击处理程序绑定到表单元素,然后在事件处理程序中将焦点设置为“this”,例如:

jQuery('.sortable-list input[type=text]').click(function(){ jQuery(this).focus(); });

我也有同样的问题。我从jquery ui网站获得了可排序代码,它有以下jquery代码行:

$( "#sortable" ).disableSelection();
一旦我把这个注释掉,我就可以再次编辑我的表单了。它可能对你有用。我肯定这会给我带来其他的麻烦(

试试这个:

//For disable
$("input, select, textarea").bind('mousedown.ui-disableSelection selectstart.ui-disableSelection', function(e){
    e.stopImmediatePropagation();
});

我认为发布一些代码会对这个问题有很大帮助。更好的是,一个指向JSFIDLE的链接。我可以告诉你为什么会发生这种情况,但我不知道解决方法。基本上,jQuery是在draggable div中捕捉鼠标事件(sortable使用draggable)这会阻止你点击表单元素。eykanal:它适用于可拖动对象中的所有表单。因此我认为不需要任何源代码。Tentonaxe:我想是的,但处理程序是IMG元素。因此我认为DIV不应该再受到此影响。也许不应该,而且它是…