2010-10-15 31 views
10

我正在開發一個拖放應用程序。我有一個可拖動的DIV文檔,文檔中還有一些div,我可以拖動一個div到其他div,但是如何找到我拖放DIV的div的id,jQuery:拖放:找到目標的ID

我只是想知道在放置另一個DIV之後目標DIV的ID。

感謝

+0

的可能重複[jQuery的:找到一個元素下的元素(http://stackoverflow.com/questions/3943203/jquery-find-the-element-below-one-element) – 2010-10-15 15:53:10

+0

你將不得不定義了一個基於選擇器的可放置組件。你應該知道可投擲目標的ID,不是嗎? – Gregg 2010-10-15 15:53:51

+1

狂猜!該div將成爲被刪除的div的父分區..所以使用.parent和.children,你可能會發現 – zod 2010-10-15 15:56:35

回答

13

您應該能夠從事件的功能(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內從this.id獲得目標的ID,使之清楚,this.id作品在任何事件。

+0

如果你需要id時,你可能會覺得它像fudgey所說的,但如果你需要在可拖動的div之後放棄this.id應該在放置功能。 – Diego 2010-10-15 16:25:15

+0

@Diego:謝謝,我更新了我的回答:) – Mottie 2010-10-17 11:47:42

2

如果您使用事件委託,但是,將是目標div的一些父項。在這種情況下,您可以使用:

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

您可以使用事件處理程序;它讓你既拖動又拖動。

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

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