可拖动的 jquery get start parent() 元素

Ste*_*ski 5 jquery drag-and-drop jquery-ui-draggable

我想用 juery 拖放项目。

现在我确实有一个包含多个项目的“存储”。

在另一个站点上,我有 x 个盒子。每个盒子只能包含 1 个项目。

现在,我使用 droppable 函数在盒子上设置另一个类,只能添加 1 个盒子,它在:

 $( ".droppable" ).droppable({
     accept: ".draggable",
     activeClass: "draghover",
     drop: function( event, ui ) {
         if($( this ).hasClass("droppable")) {
             $( this ).removeClass("droppable").addClass( "droppable-");
         }
     } });
Run Code Online (Sandbox Code Playgroud)

现在,当我将项目移回存储或另一个盒子时,我需要恢复类。我用 draggable.start 函数试过这个,但我不能得到正确的 parent()

$( ".draggable" ).draggable({
        revert: "invalid",
        snap: ".droppable",
        snapMode: "inner",
        start: function( event, ui ) {
            alert($( this ).parent().attr("Class"));

        }
    });
Run Code Online (Sandbox Code Playgroud)

这将始终返回第一次拖动之前的起始位置。不是最新的位置。

存储看起来像:

<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>
Run Code Online (Sandbox Code Playgroud)

盒子看起来像:

<td><div class="droppable" id="element 2"></div></td>
Run Code Online (Sandbox Code Playgroud)

问候

Lsa*_*isu 3

如果您想在可拖动元素从可放置元素中删除后恢复框的类(我想您就是这么问的),那么请使用 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-");
 }
 });
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助 :)