我想用juery拖放项目。
现在我有一个包含多个项目的“存储空间”。
在另一个网站上我有x个盒子。每个方框只能包含1个项目。
现在,我使用droppable函数在框中设置另一个类,只能添加一个可以使用的框:
$( ".droppable" ).droppable({
accept: ".draggable",
activeClass: "draghover",
drop: function( event, ui ) {
if($( this ).hasClass("droppable")) {
$( this ).removeClass("droppable").addClass( "droppable-");
}
} });
现在,当我将项目移回存储区或另一个盒子时,我需要还原类。 我用draggable.start函数尝试了这个,但我无法得到正确的parent()
$( ".draggable" ).draggable({
revert: "invalid",
snap: ".droppable",
snapMode: "inner",
start: function( event, ui ) {
alert($( this ).parent().attr("Class"));
}
});
这将始终在第一次拖动之前返回起始位置。不是最新的职位。
存储看起来像:
<td valign="top" class="warenlager" bgcolor="grey" width="200">
<div class="draggable" class="bild ui-widget-content" id="s73-1">S</div>
<div class="draggable" class="bild ui-widget-content" id="s74-1">S</div>
</td>
Box看起来像:
<td><div class="droppable" id="element 2"></div></td>
此致
答案 0 :(得分:3)
如果你想在从droppable中删除draggable元素之后恢复该框的类(这是我认为你要求的)然后使用out事件处理程序,所以现在代码看起来像:
$( ".droppable" ).droppable({
accept: ".draggable",
activeClass: "draghover",
drop: function( event, ui ) {
if($( this ).hasClass("droppable")) {
$( this ).removeClass("droppable").addClass( "droppable-");
}
},
out: function()
{
$(this).addClass("droppable").removeClass( "droppable-");
}
});
希望这会有所帮助:)
答案 1 :(得分:0)
答案 2 :(得分:-1)
我知道这不是最近的,但获取可拖动项目的父元素的一种方法是在draggable上使用start事件。
$( ".draggable" ).draggable({
revert: "invalid",
snap: ".droppable",
snapMode: "inner",
start: function( event, ui ) {
alert(event.currentTarget.parentElement);
}
});