2010-10-15 37 views
10

Tôi đang phát triển một ứng dụng kéo và thả. Tôi có một DIV có thể kéo dọc theo tài liệu và có một số div khác trong tài liệu, tôi có thể kéo một div vào các div khác, nhưng làm cách nào tôi có thể tìm id của div mà tôi đã bỏ DIV kéo,jQuery: kéo và thả: tìm id của mục tiêu

Tôi chỉ muốn biết id của DIV mục tiêu sau khi đặt một DIV khác lên đó.

Cảm ơn

+0

thể trùng lặp của [jquery: tìm các yếu tố dưới đây là một yếu tố] (http://stackoverflow.com/questions/3943203/jquery-find-the-element-below-one-element) –

+0

Bạn sẽ phải đã xác định một droppable dựa trên một bộ chọn. Bạn nên biết ID của mục tiêu droppable rồi, phải không? – Gregg

+1

đoán hoang dã !! div đó sẽ trở thành div cha mẹ của một giảm .. vì vậy bằng cách sử dụng .parent và .children bạn có thể thấy rằng – zod

Trả lời

13

Bạn sẽ có thể để có được ID của mục tiêu từ this.id từ bên trong các chức năng sự kiện (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 để làm cho nó rõ ràng rằng this.id tác phẩm trong bất kỳ sự kiện .

+0

Nếu bạn cần id khi bạn ở trên nó nó giống như fudgey nói, nhưng nếu bạn cần sau khi div kéo được bỏ this.id phải ở trong hàm drop. – Diego

+0

@Diego: cảm ơn, tôi đã cập nhật câu trả lời của mình :) – Mottie

2

Nếu bạn sử dụng ủy quyền sự kiện, tuy nhiên, này sẽ là một số phụ huynh của div mục tiêu. Trong trường hợp này, bạn có thể sử dụng:

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

Bạn có thể sử dụng trình xử lý sự kiện; nó cung cấp cho bạn cả một kéo và một rơi xuống.

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

$('#someContainer').droppable({ 
    drop: handleDropEvent 
}) 
Các vấn đề liên quan