你怎么能检查你的可拖动物品悬停在哪个元素上? (JQuery的)

时间:2010-12-21 16:53:51

标签: jquery jquery-ui jquery-ui-sortable jquery-ui-draggable

我有两个清单。第一个由可拖动的项目组成(如this)。 它连接到第二个,这是一个可排序的列表(如this)。

第一个列表中的项目可以通过拖动它们添加到第二个列表中。然后将它们克隆并变为绿色,以便用户可以看到它们是未保存的添加物。

我想要发生的是当您将项目拖出第二个列表时,它将被标记为删除,或者发送回第一个列表(如果它是未保存的添加)。但是我也希望人们能够对第二个列表进行排序。

因此,如果他们拖出一个项目并释放鼠标,那么它应该被移除。如果他们将一个项目拖出来又重新进入,则不应将其删除。

我已经尝试包装一个mouseup处理程序inside of a sortout,我最终使用它,但是你无法对列表中的项进行排序。

我应该采取什么想法?

2 个答案:

答案 0 :(得分:0)

您需要绑定到目标列表上的drop事件(ID“droplist”),如下所示:

$("#droplist").bind( "drop", function(event){
    $(this).append( event.dragTarget ); // or use prepend to put it at the top
    console.log("Dropped " + event.dragTarget.title);
    // trigger another event to do the work around checking if it is an unsaved addition
})

要在拖出时删除项目,您可以尝试绑定到列表周围的容器元素。

$("#background").bind( "drop", function(event){
    event.dragTarget.remove(); // guessing here
})

代码片段可以帮助您进一步提供帮助。

答案 1 :(得分:-4)

使用不同的方法,这似乎比我想象的要麻烦。我还没有在IE中测试,这可能会打开一个新的蠕虫病毒,所以我将让拖动只是排序并添加一个删除按钮。欢呼声,

NU