在更新到版本1.10.1时,jQuery-UI可拖动错误’无法在init之前调用方法’
我在使用jQuery-UI 1.8.2时正在使用draggable插件,然后我改为1.10.1。 我发现的主要区别是在启用和禁用插件时,我不再需要使用:
$this.draggable('option', 'disabled', true);
但可以简单地使用
$this.draggable('disable');
但后来我意识到还有另一个问题。 我收到此错误,这会弄乱我的整个程序,我不知道如何解决它:
错误:在初始化之前无法调用draggable上的方法; 试图调用方法’启用’
为了解决这个问题,我确保我总是调用$this.draggable('enable');
在任何进一步的选择之前,但它没有任何区别。 有什么问题?
您的错误的含义是: $this.draggable('enable');
在$this.draggable();
之前调用$this.draggable();
。
检查你的程序的执行流程:确保你确实已经初始化了插件(例如:调用$this.draggable();
),然后再尝试对它执行任何操作。
扩展LeGEC所说的……
$this.draggable();
在$this.draggable('enable');
之前被调用$this.draggable('enable');
对我来说,解决方案是像这样链接事件……
$this.draggable().draggable('disable');
首先声明$ this是可拖动的,然后声明它是不可行的
从jquery 1.6.1升级到1.9.1时,我遇到了类似的问题
var tr$ = $('', { draggable: 'true' });
抛出“无法在初始化之前调用draggable方法”
修改为:
var tr$ = $(''); if(!('draggable' in document.createElement('span'))) { //handle old browsers } else { tr$.attr('draggable', 'true'); }
发布,以防其他人以这种方式看待它。