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