4
我有jQuqeryUI的问题。 我想在元素被拖放到无效目标上时运行一些代码。 据我所知,没有预定义的事件,但我想过要结合以下事件的信息:over,out,remove和stop,来实现这一点。然而,这可能听起来像是一团糟,是否有更清晰的方式来做到这一点?jQueryUI可排序,可拖动的还原事件
我有jQuqeryUI的问题。 我想在元素被拖放到无效目标上时运行一些代码。 据我所知,没有预定义的事件,但我想过要结合以下事件的信息:over,out,remove和stop,来实现这一点。然而,这可能听起来像是一团糟,是否有更清晰的方式来做到这一点?jQueryUI可排序,可拖动的还原事件
可以传递到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()
,看是否可放开匹配。
嘿,谢谢你,这正是我所期待的。 这是一个很好的无证功能;) – thetrompf 2010-08-15 12:00:48
@thetrompf - 欢迎:) – 2010-08-15 12:02:36
只是出于好奇 - 你在哪里找到这个?我在手册中找不到这些内容。 – kastermester 2010-08-15 12:11:30