2010-10-15 21 views
10

Estoy desarrollando una aplicación de arrastrar y soltar. Tengo un DIV que se puede arrastrar a lo largo del documento y hay otros divs en el documento, puedo arrastrar un div a otros divs, pero ¿cómo puedo encontrar el id del div al que solté DIV de arrastre,jQuery: arrastre y suelte: encuentre el ID del objetivo

Solo quiero saber la identificación del DIV objetivo después de colocar otro DIV sobre él.

Gracias

+0

posible duplicado de [jQuery: encontrar el elemento a continuación un elemento] (http://stackoverflow.com/questions/3943203/jquery-find-the-element-below-one-element) –

+0

Usted tendría haber definido un droppable basado en un selector. Ya deberías conocer la ID del objetivo que se puede eliminar, ¿no? – Gregg

+1

conjetura salvaje! ese div se convertirá en el div principal del dropeado ... entonces usando .parent y .children puedes encontrar que – zod

Respuesta

13

Usted debe ser capaz de obtener el ID del objetivo de this.id desde el interior de las funciones de eventos (demo)

$(".droppable").droppable({ 
    drop: function(event, ui) { 
     $(this).addClass("ui-state-highlight").find("p").html("Dropped in " + this.id); 
    }, 
    over: function(event, ui) { 
     $('.display').html(this.id); 
    } 
}); 

Updated demo a dejar claro que this.id obras en cualquiera de los eventos .

+0

Si necesitas el id cuando lo terminas es como lo dice fudgey, pero si lo necesitas después del div que se puede arrastrar dejó caer thisid debe estar en la función de soltar. – Diego

+0

@Diego: gracias, actualicé mi respuesta :) – Mottie

2

Si usa delegación de eventos, este será uno de los elementos principales del div de destino. En este caso, puede usar:

var handleDrop=function(e) 
{ 
    var target=e.target || e.srcElement; 
    var id=target.id; 
    // do something with it 
} 
1

Puede usar un controlador de eventos; te da tanto el que se arrastró como el que se dejó caer.

function handleDropEvent(event, ui) { 
    alert('Dropped ' + ui.draggable.attr('id') + ' onto ' + event.target.id); 
} 

$('#someContainer').droppable({ 
    drop: handleDropEvent 
}) 
Cuestiones relacionadas