0

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

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

但事情并不如我所料。每次我开始拖动元素时,firebug 中显示的 html 都有正确的可拖动/可排序类设置,但它对当前的拖动事件无效。例如,第一次拖动时,虽然 html 已经有相应的类设置,但该元素既不可拖动也不可排序。第二次拖动时,它将是可拖动或可排序的。如果您为当前拖动事件设置元素可拖动/可排序,则下次拖动它时它将起作用。总之,您期望当前事件的可拖动/可排序事件只会对下一个事件有效。我想知道这是 jQueryUI 应该是什么,还是我的代码有问题。我应该如何解决它?

4

0 回答 0