对于ui.draggable jQuery UI的错误(“毁灭”)(jquery ui error

2019-09-16 08:40发布

我想删除的拖动属性<div>当我放弃它的容器上。 但是,我得到一个错误"Property 'draggable' of object #<Object> is not a function" ,下面我的代码。

$( "#fighter1" ).draggable(); //fighter1 is the id of draggable object
$( "#fighter2" ).draggable();
$( "#fighter3" ).draggable();
$( "#fighter4" ).draggable();
$( "#fighter5" ).draggable();
$( "#fighter6" ).draggable();
$( "#dest" ).droppable({      //dest is the id of droppable object
   drop: function( event, ui ) {
      ui.draggable("destroy"); //I get error here.
   }
});

我使用jQuery UI的版本1.8.12

Answer 1:

我的猜测是,“UI”是一个简单的JavaScript老对象,而不是一个jQuery对象。
尝试(修订):
$(ui.draggable).draggable("destroy");



Answer 2:

调用语法的可拖动小工具的方法是:

$( ".selector" ).draggable( "method" );

你应该通过方法的名称作为stringdraggable()方法。

内部放置事件回调, ui.draggable仅仅是对应于拖动元素(jQuery对象的引用$( ".selector" )的语法的一部分)。

实际上,你应该调用draggable()上,并通过该方法的名称:

ui.draggable.draggable("destroy");
----^-------        ------^------
selector                method name
       --------^--------
   this guy executes the method


Answer 3:

我决定使用setTimeout函数这个问题:

setTimeout(function(a){a.draggable("destroy");},100,ui.draggable);


文章来源: jquery ui error for ui.draggable(“destroy”)