jQuery UI可拖动错误'不能在init'之前调用方法;,更新到1.10.1版本

jQuery-UI draggable error 'cannot call methods prior to init', in updating to version 1.10.1

本文关键字:方法 调用 更新 1版本 init 拖动 UI 错误 不能 jQuery      更新时间:2023-09-26

我在使用jQuery UI 1.8.2时很好地处理了可拖动插件,然后我改为1.10.1。我发现的主要区别是,在启用和禁用插件时,我不再需要使用:

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

但可以简单地使用

$this.draggable('disable');

但后来我意识到还有另一个问题。我遇到了这个错误,它扰乱了我的整个程序,我不知道如何修复它:

错误:无法在初始化之前调用draggable上的方法;尝试调用方法"enable"

为了解决这个问题,我确保在任何进一步的选项之前总是调用$this.draggable('enable');,但这并没有什么不同。怎么了?

错误的含义是:$this.draggable('enable');$this.draggable();之前调用。

检查您的程序的执行流程:在尝试对插件进行任何操作之前,确保您确实初始化了插件(例如:名为$this.draggable();)。

扩展LeGEC所说的。。。

$this.draggable();$this.draggable('enable'); 之前被调用

对我来说,解决方案是像这样把事件串起来。。。

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

首先声明$this是可拖动的,然后声明它是禁用的

从jquery 1.6.1升级到1.9.1 时,我遇到了类似的问题

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

throw"在初始化之前无法在draggable上调用方法"

修改为:

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

张贴,以防有助于其他人以这种方式看待它。