jQuery的UI可拖动的错误“无法调用init方法之前”,在升级到1.10.1版本(jQuery-

2019-08-17 01:36发布

我工作的可拖动的插件细而使用jQuery UI的1.8.2,然后我改1.10.1。 我发现的主要区别是,在启用和禁用插件,我不再需要使用:

$this.draggable('option', 'disabled', true);

但可以简单地使用

$this.draggable('disable');

但后来我意识到还有另外一个问题。 我得到这个错误,这打乱了我的整个程序,我不知道如何解决它:

错误:不能调用方法拖动在初始化之前; 试图调用方法“启用”

为了解决这个问题,我保证,我总是调用$this.draggable('enable'); 之前的任何其他选项,但它并没有发挥作用。 有什么问题?

Answer 1:

你的错误的含义是: $this.draggable('enable'); 之前被称为$this.draggable();

检查你的编程'的执行流程:确保你确实初始化插件:(例如称为$this.draggable();试图用它做任何事情之前)。



Answer 2:

扩大对什么LeGEC说...

$this.draggable(); 之前被称为$this.draggable('enable');

对我来说,解决办法是链这样的情况下...

$this.draggable().draggable('disable');

首先宣布$这是一个可拖动,然后宣布它dissabled



Answer 3:

从jQuery的1.6.1升级到1.9.1,当我有一个类似的问题

var tr$ = $('<tr>', { draggable: 'true' }); 

扔“不能叫上拖动在初始化之前的方法”

修改为:

var tr$ = $('<tr>');
if(!('draggable' in document.createElement('span'))) {
  //handle old browsers                
} else {
  tr$.attr('draggable', 'true');
}

在发布的情况下它可以帮助别人这样看问题。



文章来源: jQuery-UI draggable error 'cannot call methods prior to init', in updating to version 1.10.1