jQueryUI可排序,可拖动的恢复事件

时间:2010-08-15 11:25:28

标签: jquery jquery-ui jquery-plugins jquery-ui-sortable

我遇到了jQuqeryUI的问题。 每当在无效目标上拖放元素时,我想运行一些代码。 据我所知,没有预定义的事件,但我已经考虑过组合来自以下事件的信息:over,out,remove和stop,以实现这一目标。然而,这可能听起来像是一团糟,你有更清洁的方式吗?

1 个答案:

答案 0 :(得分:7)

您也可以将方法传递给revert option,例如,如果我们采用这样的示例演示:

<div id="draggable" class="ui-widget-content">
    <p>I revert when I'm not dropped</p>
</div>
<div id="droppable" class="ui-widget-header">
    <p>Drop me here</p>
</div>​

然后在您的可拖动上,您可以计算是否还原,如下所示:

$("#draggable").draggable({ 
    revert:  function(dropped) {
       var dropped = dropped && dropped[0].id == "droppable";
       if(!dropped) alert("I'm reverting, what a cruel world!");
       return !dropped;
    } 
});

You can give it a try here,传入的dropped参数是它放在.droppable()上的元素,如果它落在其他任何地方,它只是false

或者如果您使用的是accept option,您可能需要计算一下,就像这样:

var dropped = dropped && $(this).is(dropped.droppable('option', 'accept'));

这使用接受选择器并使用.is()来查看droppable是否匹配。

You can view a demo of that here