2016-07-21 4 views
0

Kürzlich habe ich versucht, die ID = "was-ID" Attribut einer Div, die gezogen wird, aber ich bisher nicht gelungen ist . Im Folgenden finden Sie meinen Code (nur das Ziehen), wo ich versuche, dieses ID-Attribut mit ui und event-Objekten zu erhalten, aber ich kann nicht sehen, wo das Problem liegt.Erhalten Attribut-ID eines Div-Elements, das mit JQUERY gezogen wird

$(function() 
{ 
    $(".action-zone").draggable(
    { 
     scroll: true, 
     helper:"clone", 
     snap: ".actionDropAreaMovebleAction", 
     snapMode: "inner", 
     snapTolerance: 50, 
     opacity: 0.7, 
     forcePlaceholderSize: true, 
     forceHelperSize: true, 
     start: function(event, ui) 
     { 
      alert(ui.draggable.attr("id")); 

      //INSERT THE DROP ZONE DIV IN ALL ELEMENTS EXCEPT ON THOSE WHOSE CLASS IS DRAGGINGACTION 
      $(".action-zone:not(.draggingAction)").after("<div class='actionDropAreaMovebleAction'>\n\ 
              <div class='plus'>\n\ 
               <i class='fa fa-hand-o-down'></i>\n\ 
              </div>\n\ 
             </div>"); 

      $(".actionDropAreaMovebleAction").addClass("highlighted"); 
      makeActionsDroppable(); 
     }, 
     stop:function(event, ui) 
     { 
      $(".actionDropAreaMovebleAction").removeClass("highlighted"); 
      $("div").remove(".actionDropAreaMovebleAction"); 
      $(this).removeClass("draggingAction"); 
      //alert("hallo"); 
     } 
    }); 
}); 

Wie man sehen kann ich versuchen, "Alarm()" das Attribut ID des DIV-Elements mit Klasse "Action-Zone" nur für Testzwecke, aber wenn der Alarm kommt I bekomme ein "undefined" Element zurück.

Hat jemand eine Idee, warum das passiert ist?

Ich danke Ihnen im Voraus.

Antwort

0

können Sie nur ui.draggable verwenden, um das ziehbar-Objekt zu erhalten, wenn es um woanders fallen, wie Sie das Objekt in droppable fangen können:

$(".drop-zone").droppable({ 
    drop: function(event, ui) { 
    console.log(ui.draggable); // will give you the draggable object 
    } 
}); 

jedoch in Ihrem draggable ‚s start Ereignisse, könnten Sie bekommen die ID des Objekts wie folgt:

$(".action-zone").draggable({ 
    start: function(event, ui) { 
    console.log(ui.draggable); // will give you undefined 
    console.log(event.target.id); // will give you the id 
    console.log(event.target.attr('id')); // error! 
    console.log($(event.target).attr('id')); // will give you the id 
    } 
}); 
+0

Hallo lozy219. Ich habe versucht, "event.target.id" innerhalb der ziehbaren Funktion vorher auszugeben und es hatte auch nicht funktioniert. Ich habe Ihre Vorschläge innerhalb der Drop-Funktion angewendet und es hat nicht funktioniert. Ich werde immer noch undefiniert. siehe: http://www.imageno.com/78qs52xowtnspic.html –

+0

Ohne weitere Details kann ich nicht sagen, was mit dem Drag & Drop-Ereignis falsch ist. Hier ist eine sehr einfache Demo, die zeigt, wie die ID über 'event.target' abgerufen wird. Ich habe das HTML-Beispiel von jquery Site verwendet. https://jsbin.com/sisigurexu/edit?html,js,output – lozy219

+0

Sie haben Recht. Es funktioniert wirklich. Ich meine, ich habe eine separate Datei erstellt und diesen Code verwendet, den Sie erstellt haben, und es hat funktioniert, aber irgendwie funktioniert es in meinem Hauptcode nicht. Ich muss mir den ganzen Code ansehen, weil etwas nicht stimmt Spiel .. danke für deine Hilfe Lozy –

Verwandte Themen