如何在不实际拖放的情况下使用jQuery UI Droppable触发Drop事件?

我有一个带有drop事件处理程序的droppable

$(this).droppable({ drop:function(){ console.log('OMG You Dropped It!'); } }); 

我有一个拖车

 $(this).draggable(); 

我想要做的是触发droppable上的drop事件处理程序而不实际拖放draggable 。 我想在不实际执行行为的情况下模拟实际行为。

我认为这样的事情会做:

 $(droppable).trigger('drop', [draggable]); 

不幸的是,它并不那么简单。 有谁知道我怎么能做到这一点?

您应该将drop handler中的代码移动到单独的函数中。
然后,您可以在处理程序和其他地方调用该函数。

您可以通过option-method触发与掉话相关的function:

 $("#droppable").droppable({ drop: function(event, ui) { do stuff } }); var drop_function = $("#droppable").droppable.option('drop'); drop_function(); 

通过这种方式,您可以获得在droppable上放置内容时所发生的一切。 当然你可以只执行该function而不是分配它。 尽管如此,分配一个要删除的函数是一个好主意,你可以在其他地方定义,只是为了清楚起见。

正如StuperUser指出并基于ajmurmann的回答,使用最新版本的jQuery,你应该这样做:

 $("#droppable").droppable({ drop: function(event, ui) { do stuff } }); var drop_function = $("#droppable").droppable('option', 'drop'); drop_function();