gpt4 book ai didi

jquery - 放入可拖动元素拖放到其他容器而不是本身?

转载 作者:行者123 更新时间:2023-12-01 01:29:09 25 4
gpt4 key购买 nike

引用 JQuery UI Droppable 示例后:购物车。我重写它进行测试。但遇到了一些问题。

假设:

产品容器:将产品拖放到购物车容器中。

<div class="products">
<ul>
<li> product 1 </li>
...
</ul>
</div>

和购物车容器:

<div class="shoppingCart1">
... dropped products here
</div>

其他购物车容器:

<div class="shoppingCar2">
... dropped products here
</div>

我希望shoppingCart1的产品可以拖放到其他购物车容器中,但不能拖放到其本身,反之亦然。例如:

问题是:

当产品已放入 s*hoppingCart1* 后,我可以将 shoppingCart1 中的产品拖放到其他购物车容器 附加产品。我的意思是,当我拖动shoppingCart1的产品并放入shoppingCart1本身时,它也会附加到shoppingCart1

非常感谢!

我的部分代码是从 JQuery UI Droppable 重写的:购物车 exmaple![ 不能按我想要的方式工作]

    this.igtoMDMovieList = $('<div />',{'class':'igtoMDMovieList'})
.appendTo(this.igtoMDMovieListWrapper);


this.igtoMDMovieListOL = $('<ol />',{'class':'igtoMDMovieListOL'})
.html('<li class="placeholder">Add your items here</li>')
.appendTo(this.igtoMDMovieList)
.droppable({
accept:'li',
drop: function( event, ui ) {

$( "<li></li>" )
.text( ui.draggable.text() )
.appendTo(obj.igtoMDMovieListOL)//$(this).children()
.draggable({
appendTo: "#desktopFrame",
helper: "clone"
})

}
})
.sortable({
items: "li:not(.placeholder)",
sort: function() {
// gets added unintentionally by droppable interacting with sortable
// using connectWithSortable fixes this, but doesn't allow you to customize active/hoverClass options
$( this ).removeClass( "ui-state-default" );
}
});

最佳答案

这将确保任何列表中的内容都不会重复。它使用 data-id 属性为每个产品提供一个产品 ID。

$("#products li").draggable({
appendTo: "body",
helper: "clone"
});
$(".shoppingCart ol").droppable({
activeClass: "ui-state-default",
hoverClass: "ui-state-hover",
drop: function(event, ui) {
var self = $(this);
self.find(".placeholder").remove();
var productid = ui.draggable.attr("data-id");
if (self.find("[data-id=" + productid + "]").length) return;
$("<li></li>", {
"text": ui.draggable.text(),
"data-id": productid
}).appendTo(this);
// To remove item from other shopping chart do this
var cartid = self.closest('.shoppingCart').attr('id');
$(".shoppingCart:not(#"+cartid+") [data-id="+productid+"]").remove();
}
}).sortable({
items: "li:not(.placeholder)",
sort: function() {
$(this).removeClass("ui-state-default");
}
});

示例:http://jsfiddle.net/petersendidit/S4QgX/

关于jquery - 放入可拖动元素拖放到其他容器而不是本身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4766215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com