Jquery Ui Draggable如何获取在中拖动的div的Id

Jquery Ui Draggable如何获取在中拖动的div的Id,jquery,user-interface,Jquery,User Interface,我正在外部容器div之间拖放div,需要获取开始拖动的外部div的id。 我通过在drag start事件上保存$(this.parentNode).attr('id')来实现这一点 第一次拖动某个对象时,这会给出预期的div id,但在随后拖动同一div时,此id不正确 有什么想法吗 代码如下: <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.

我正在外部容器div之间拖放div,需要获取开始拖动的外部div的id。 我通过在drag start事件上保存
$(this.parentNode).attr('id')
来实现这一点

第一次拖动某个对象时,这会给出预期的div id,但在随后拖动同一div时,此id不正确

有什么想法吗

代码如下:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<DragDropTrial.Models.LemonCollection>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <script type="text/javascript">

    $(function() {
        var origleft;
        var origtop;
        var origZ;

        // Make lemons image draggable
        $("img.lemons").draggable({
               start: function(event, ui) {
               origleft = event.clientX;
               origtop = event.clientY;
               origZ = $(this.parentNode).attr('id');
               },
                cursor: "move"
            });

        // Make dish div droppable
        $("#dish").droppable({
            drop: function(event, ui) {
                saveDropDetails(ui.draggable.attr('id'), $(this).attr('id'), ui.absolutePosition.top, ui.absolutePosition.left, origleft, origtop, origZ);
            }
        });
        // Make table div droppable
        $("#table").droppable({
            drop: function(event, ui) {
                saveDropDetails(ui.draggable.attr('id'), $(this).attr('id'), ui.absolutePosition.top, ui.absolutePosition.left);
            }
        });
        });

    function saveCoords(left, top, dragId) {
        alert("{dragId is : '" + dragId + "',left is : '" + left + "',,top is : '" + top + "'}");
    }
    function saveDropDetails(dragId, dropId, dropPosTop, dropPosLeft, origleft, origtop, origZ) {
        alert("dragId is : " + dragId + ",dropId is : " + dropId + ",dropPosTop is : " + dropPosTop + ",dropPosLeft is : " + dropPosLeft + " origTop is " + origtop + " origLeft is " + origleft + " originZ is " + origZ);
    }
</script>

<h2>Drag and drop the lemons</h2>

    <div id = "table" style = "background-color:Blue">TABLE
          <%foreach (var aLem in Model.Table)    
          { %>
             <img id = "<%=aLem.LemonId %>", alt ="<%=string.Format("Lemon{0}", aLem.LemonId) %>" src="../../Images/extract.png" style ="padding-left:25px" class = "lemons" />

        <%} %>

    </div>
    <br />
    <br />
    <br />

    <div id = "dish" style = "background-color:Gray" >DISH
    <p></p>
          <%foreach (var aLem in Model.Dish)    
          { %>
             <img id = "<%=aLem.LemonId %>", alt ="<%=string.Format("Lemon{0}", aLem.LemonId) %>" src="../../Images/extract.png" style ="padding-left:25px" class = "lemons" />

        <%} %>

    </div>

$(函数(){
var origleft;
var origtop;
var-origZ;
//使柠檬图像可拖动
$(“img.lemons”)。可拖动({
开始:功能(事件、用户界面){
origleft=event.clientX;
origtop=event.clientY;
origZ=$(this.parentNode.attr('id');
},
光标:“移动”
});
//使碟片可放下
$(“#盘”)。可拖放({
drop:函数(事件、用户界面){
saveDropDetails(ui.draggable.attr('id')、$(this.attr('id')、ui.absolutePosition.top、ui.absolutePosition.left、origleft、origtop、origZ);
}
});
//使表div可放下
$(“#表”)。可拖放({
drop:函数(事件、用户界面){
saveDropDetails(ui.draggable.attr('id'),$(this.attr('id'),ui.absolutePosition.top,ui.absolutePosition.left);
}
});
});
函数saveCoords(左、上、右){
警报(“{dragId为:'”+dragId+”,左侧为:'“+left+”,顶部为:'“+top+”}”);
}
函数saveDropDetails(dragId、dropPosTop、dropPosLeft、origleft、origtop、origZ){
警报(“dragId为:+dragId+”,dropId为:+dropId+”,dropPosTop为:+dropPosLeft+,dropPosLeft为:“+dropPosLeft+”,origTop为“+origTop+”,origLeft为“+origLeft+”,originZ为“+origZ”);
}
拖放柠檬
桌子



盘子


首先,我要说天晚了,我累了

var tables = [], dishes = [];

<%foreach (var aLem in Model.Table)    
{ %>
  tables.push(<%= aLem.LemonId %>);
  <img id = "<%=aLem.LemonId %>", ... class = "lemons" />
<%} %>

<%foreach (var aLem in Model.Dish)    
{ %>
  dishes.push(<%= aLem.LemonId %>);
  <img id = "<%=aLem.LemonId %>", ... class = "lemons" />
<%} %>
var tables=[],displays=[];
表。push();
盘子。推();

现在你的餐桌柠檬和菜用柠檬不会忘记它们来自哪里。可能有更好的方法,但这对我来说已经足够了-希望它足以让你开始。

你能发布代码,包括投递代码。查看你的代码可能会有所帮助。您的拖放代码正在更改DOM,因此当它被拖动时,它的父级可能会发生更改。如果您想在可拖动和可拖放之间添加一行,请阅读我的文章:)是否只有在多次将元素拖动到其他容器时才会出现问题?但它第一次运行正常吗?谢谢,但实际上我不想知道柠檬最初来自哪里,而是想知道每次拖动开始时它们在哪里。我的目标是一个完整的历史,那里的柠檬被拖和扔。