繁体   English   中英

如何在项目中集成可拖动和可排序的jQueryUI?

[英]How should I integrate both jQueryUI draggable and sortable in my project?

我想将可拖动和可排序的jQueryUI集成到我的项目中,并使用mousedown的开始时间和第一个mousemove事件之间的时间差来区分它们。 我的部分代码如下:

var deltaX = self.mouse.startX - event.pageX,
    deltaY = self.mouse.startY - event.pageY;
if (self.mouse.mousedownTime - self.mouse.mousemoveTime < 700){                   
                // Drag down
                if(Math.abs(deltaX) < Math.abs(deltaY) && deltaY < 0){
                    $(self.el).draggable({disabled: false});
                    $(self.el).sortable({disabled: true});
                    $(self.el).draggable({axis: 'y'});
                    $(self.el).draggable({revert: true});
 ....
}
// Sorting action
else {
            $(self.el).sortable({disabled: false});
            $(self.el).draggable({disabled: true}); // global dragging
            $(self.el).sortable({containment: $(self.el).closest('.content')});
        }

但是事情不是我所期望的。 每次我开始拖动该元素时,firebug中显示的html都具有正确的可拖动/可排序类设置,但对于当前的拖动事件无效。 例如,当您第一次拖动时,尽管html已经具有相应的类设置,但该元素既不可拖动也不可排序。 第二次将其拖动或排序。 并且,如果您为当前拖动事件设置了元素可拖动/可排序,则该元素仅在下次拖动时起作用。

简而言之,您期望当前事件进行的可拖动/排序事件仅对下一个事件有效。 我想知道这是jQueryUI应该是什么还是我的代码有错误。 我应该如何解决? 如何在我的项目中集成可拖动和可排序的内容?

这是一种预期的行为,要将插件挂接到元素上,它必须侦听何时将其拖放以及将其拖动到何处。

通常,这两个插件可以并排工作。 因此,我认为没有办法做到这一点,而不是使元素只能是可拖动的,因为无论如何都必须拖放可拖放的元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM