2009-08-18 4 views
0

Je suis en faisant glisser et en déposant divs entre div diviseurs externes et besoin d'obtenir l'ID de la div extérieure que le drag a commencé po Je le fais en économisant $(this.parentNode).attr('id') dans l'événement de démarrage de la glissade.Jquery Ui Draggable Comment faire pour obtenir ID de div dragged commencé

La première fois que je fais glisser quelque chose, cela donne l'ID div attendu, mais sur les drags suivants de la même div cet ID n'est pas correct.

Des idées s'il vous plaît?

Voici le code:

<%@ 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> 

+0

Pouvez-vous poster le code, y compris le code de la baisse. – Lazarus

+0

Il pourrait être utile de voir votre code. Votre code glisser-déposer modifie le DOM, donc son parent va probablement changer quand il est déplacé. –

+0

si vous voulez ajouter une ligne entre le draggable et le dropable, s'il vous plaît lire mon post sur: http://stackoverflow.com/questions/536676 :) – balexandre

Répondre

1

Je vais commencer par dire qu'il est tard et je suis fatigué.

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" /> 
<%} %> 

Maintenant vos citrons de table et les citrons plat n'oublieront pas d'où ils venaient. Il pourrait y avoir de meilleurs moyens mais c'est tout pour moi - j'espère que c'est suffisant pour vous aider à démarrer.

+0

Merci, mais en fait je ne veux pas savoir d'où provenaient les citrons, mais plutôt où ils se trouvaient au début de chaque drag. Je vise à une histoire complète de l'endroit où les citrons ont été traînés et abandonnés. – WJS

Questions connexes