在jQuery UI元素上重复拖动失败 我试图为一个相当复杂的购物车准备一个简单的拖放基础。我以前从未使用过jQueryUI,我刚刚制作了一个演示主要概念的原型
简而言之,购物车有几个容器,其中可能包含任意数量的可拖动资产。这只是一次又一次的跳水。应允许将资产放入任何容器中。我已经开始了初始交互,但一旦我将一个资源放到另一个容器中,并尝试将同一个资源拖回或拖到另一个容器中,拖动就不会跟随光标,尽管拖放确实有效 我在这里发布了代码: 以下是我的JavaScript:在jQuery UI元素上重复拖动失败 我试图为一个相当复杂的购物车准备一个简单的拖放基础。我以前从未使用过jQueryUI,我刚刚制作了一个演示主要概念的原型,jquery,jquery-ui,jquery-ui-draggable,jquery-droppable,Jquery,Jquery Ui,Jquery Ui Draggable,Jquery Droppable,简而言之,购物车有几个容器,其中可能包含任意数量的可拖动资产。这只是一次又一次的跳水。应允许将资产放入任何容器中。我已经开始了初始交互,但一旦我将一个资源放到另一个容器中,并尝试将同一个资源拖回或拖到另一个容器中,拖动就不会跟随光标,尽管拖放确实有效 我在这里发布了代码: 以下是我的JavaScript: var cartDragger, move; cartDragger = (function() { function cartDragger(el, contain) { t
var cartDragger, move;
cartDragger = (function() {
function cartDragger(el, contain) {
this.el = el;
this.contain = contain;
}
cartDragger.prototype.drag = function() {
return $(this.el).draggable({
revert: 'invalid',
start: function() {
this.currentParent = $(this).parent().attr('id');
return $(this).addClass('highlighted');
}
});
};
cartDragger.prototype.drop = function() {
return $(this.contain).droppable({
accept: this.el,
over: function() {
return $(this).removeClass('out').addClass('over');
},
out: function() {
return $(this).removeClass('over').addClass('out');
},
drop: function(event, ui) {
$(this).removeClass('over');
ui.draggable.removeClass('highlighted');
if (this.currentParent !== $(this).attr('id')) {
return ui.draggable.appendTo($(this)).removeAttr('style');
}
}
});
};
return cartDragger;
})();
move = new cartDragger('.asset', '.project');
move.drag();
move.drop();
我不知道为什么在一些移动后辅助对象不存在,但您可以使用一种解决方法来创建克隆辅助对象,如下所示:
谢谢你的意见,我也是这样结束的。我不喜欢我的特定互动的克隆人,但我似乎不能做任何其他方式。
cartDragger.prototype.drag = function() {
return $(this.el).draggable({
revert: 'invalid',
helper:function() {
return $(this).clone();
},
opacity : '0.6',
start: function() {
this.currentParent = $(this).parent().attr('id');
return $(this).addClass('highlighted');
}
});
};