我真的遇到了jQuery拖放问题。所以让我稍微解释一下情况。
我想要实现的目标如下:当你在时间轴上拖动其中一个泪珠时,div中的id和它所放置的项目的id应该在删除后立即存储在我的数据库中。 / p>
我设法用ajax做到了,这是代码:
$('#dropzone ul li').droppable({
drop: function(event, ui) {
var day = $(".confirmday").val();
var $drag = $(ui.draggable),
var $drop = $(this);
var drag = $drag.attr('id');
var drop = $drop.attr('id');
console.log(drag);
if(drag == 'drag1')
{
drag = 'Medicijnen';
werkwoord = ' ingenomen om ';
}
else if(drag == 'drag2')
{
drag = 'Snack';
werkwoord = ' gegeten om ';
}
else if(drag == 'drag3')
{
drag = 'Frisdrank';
werkwoord = ' gedronken om ';
}
else if(drag == 'drag4')
{
drag = 'Thee';
werkwoord = ' gedronken om ';
}
else if(drag == 'drag5')
{
drag = 'Koffie';
werkwoord = ' gedronken om ';
}
else if(drag == 'drag6')
{
drag = 'Alcohol';
werkwoord = ' gedronken om ';
}
$.post("ajax/save.php", {
drag: drag,
drop: drop,
userid: <?php echo $_SESSION['id']; ?>,
day: day},
function(data)
{
});
return false;
},
});
但是当我这样做时,被拖动的项目(或该项目的克隆)就会消失。我不知道为什么,因为页面没有刷新。新项目不会存储。
我尝试的另一个选项是将拖动项目的ID和删除项目ID放在文本框中,并在每次删除某些内容时保存。但那也行不通。
我真的希望有人可以帮助我! 提前谢谢。
答案 0 :(得分:2)
您将在false
回调处理程序的末尾返回drop
。
这将告诉droppable draggable无效,然后将其丢弃。如果您完全删除return
,它应该可以正常工作。
我冒昧地优化你的代码,我希望你不介意;)
$('#dropzone ul li').droppable({
drop: function(event, ui) {
var day = $(".confirmday").val(),
drag, werkwoord;
switch (ui.draggable[0].id) {
case "drag1":
drag = 'Medicijnen';
werkwoord = ' ingenomen om ';
break;
case "drag2":
drag = 'Snack';
werkwoord = ' gegeten om ';
break;
case "drag3":
drag = 'Frisdrank';
werkwoord = ' gedronken om ';
break;
case "drag4":
drag = 'Thee';
werkwoord = ' gedronken om ';
break;
case "drag5":
drag = 'Koffie';
werkwoord = ' gedronken om ';
break;
case "drag6":
drag = 'Alcohol';
werkwoord = ' gedronken om ';
break;
default:
return false;
break;
}
$.post("ajax/save.php",
{
drag: ui.draggable[0].id,
drop: this.id,
userid: <?php echo $_SESSION['id']; ?>,
day: day
},
function(data){}
);
},
});