将值传递给可拖放数组
Passing values to arrays with draggable and droppable
我需要有人来帮助我与jQuery可拖放。
- 当物品拖放时,推送/弹出值到喜欢/讨厌数组。
- 当项目离开喜欢/讨厌框,他们可以回到他们来自哪里,正确的div框。
我不明白为什么当我放/放盒子给我2个名字为一个项目,虽然现在我可以使用$.unique(),但它不是实践在所有。我已经尝试了很多方法,但不确定如何弹出值喜欢/仇恨阵列时,项目取出。非常感谢!
我的代码在这里
Like = [];
Hate = [];
$(function () {
$("#AllTable .test").draggable({
appendTo: "body",
helper: "clone",
revert: "invalid",
});
$(".LikeBox div").droppable({
drop: function (event, ui) {
var $item = ui.draggable;
$item.appendTo("#likeTable");
var ingre = $item.text();
alert(ingre);
Like.push(ingre);
Like = $.unique(Like)
}
});
$(".HateBox div").droppable({
drop: function (event, ui) {
var $item = ui.draggable;
$item.appendTo("#hateTable");
var ingre = $item.text();
Hate.push(ingre);
Hate = $.unique(Hate)
}
});
$(function () {
$('.IngreMainCat').accordion();
});
});
编辑:我的新代码是这样的,问题1解决了:
Like = [];
Hate = [];
$(function() {
$( "#AllTable .test" ).draggable({
appendTo: "body",
helper: "clone",
revert: "invalid",
});
$( ".LikeBox .droptrue" ).droppable({
drop: function( event, ui ) {
var $item = ui.draggable;
$item.appendTo("#likeTable");
var ingre = $item.text();
Like.push(ingre);
if($.inArray(ingre,Hate) > -1){
var index = Hate.indexOf(ingre);
if (index > -1) {
Hate.splice(index, 1);
}
}
}
});
$( ".HateBox .droptrue" ).droppable({
drop: function( event, ui ) {
var $item = ui.draggable;
$item.appendTo("#hateTable");
var ingre = $item.text();
Hate.push(ingre);
if($.inArray(ingre,Like) > -1){
var index = Like.indexOf(ingre);
if (index > -1) {
Like.splice(index, 1);
}
}
}
});
});
你实际上有2个div是可拉的,因为你的选择器。因为你调用了.LikeBox
的所有子div,你得到了这2个运行drop函数的dropables:
<div>
<div id="likeTable" class="droptrue">
在调用了droppable之后,它看起来是这样的,参见ui-droppable
在两者上:
<div class="ui-droppable">
<div id="likeTable" class="droptrue ui-droppable">
澄清你的选择器,你应该不会有问题。例如:
$( ".LikeBox .droptrue" ).droppable({
参见工作小提琴:https://jsfiddle.net/2ets9hjg/
编辑:对于要从数组中删除的元素,一个建议:而不是使用push
和pop
并跟踪您在表中添加和删除的内容,您可以在需要时map
您的表。参见jquery map: http://api.jquery.com/jquery.map/。这样更容易记录。这样的:
Like = $.map($( "#likeTable div" ),function(a){return a.textContent});
https://jsfiddle.net/2ets9hjg/4/相关文章:
- 正在尝试将JSON文件放入JS数组
- 如何获取文本框组的值,并使用jquery将它们放入(key:Value)数组中
- ajax成功地将数组中的数据放入表中各自的输入中
- 如何在javascript中循环并将JSON对象放入数组中
- 将数组放入以下格式的名称:url
- 根据条件将函数放入数组中(如果选中复选框)
- 按值名称过滤掉重复的对象,并将其放入新数组中
- 将值放回数组中相应的用户
- 如何将数字相加并将结果放入数组中
- 将项目放入数组中
- Javascript:如何将SVG图像放入数组中
- 将所有带有 id like 的元素放入数组中
- 将 FormData 对象放入数组中以从不同的输入文件上载文件
- Jquery可拖放到数组中
- 设置拖放子节点以在表中显示 JSON 数组
- 在HTML5中使用JavaScript实现图像数组的拖放
- js中拖放图像的数组事件侦听器
- 当使用视图框时,在拉斐尔.js中拖放一组路径
- 缩放容器的Jquery可拖动容器数组值
- 将值传递给可拖放数组