jQueryUI可拖动组件,如何触发“停止”事件?

3

我必须拖动的对象也可以通过按键事件 (上、下、左和右) 进行移动。

在任何对象的拖动事件中,我都有一个执行某些操作的函数。当对象被键盘移动时,我必须调用拖动停止事件。

所有这些解决方案都无效。

Jquery .trigger('stop') method for .draggable

$("#obj").draggable().trigger("dragstop");

$("#obj").trigger("dragstop");

如何使用Trigger触发jQuery的可拖拽开始、拖拽和停止事件?

var s = [{ClientX:0, ClientY:0, target:""},{}];
$("#obj").draggable("option" , "stop").apply($("#obj") , s);
1个回答

1

我相信您在初始化时绑定了stop或其他)事件,如下所示:

$("#draggable").draggable({
 stop: function(ev,ui){
 }
});

在这种情况下,trigger 将不起作用。
单独绑定事件,
例如:
$("#draggable").on("dragstop",function(ev,ui){

});

然后触发器将起作用。

$("#draggable").draggable();
$("#draggable").on("dragstop", function(ev, ui) {
  alert("draggable stop");
});
$("button").click(function(){
  $("#draggable").trigger("dragstop");
});
#draggable {
  width: 50px;
  height: 50px;
  background: dodgerblue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
<div id="draggable"></div>
<button>click</button>


现在事件被调用了,但是当我触发dragstop事件时,参数ui($(obj).on("dragstop", function(ev, ui){..}))是未定义的。 - WhiteLine
该问题也存在于您的示例中。 - WhiteLine
@WhiteLine 显然它会是空的。它不是由实际拖动触发的,你还能期望什么... - T J

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接