如何在不实际拖放的情况下使用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();