与jQuery-ui-1.9.1一起使用时,jquery-ui-dialog-extra会出错

时间:2012-11-02 10:53:02

标签: jquery

我正在使用jQuery-ui-dialog-extra将最小化/最大化/恢复按钮添加到标准的jQuery UI对话框中。当我使用jQuery-ui-1.8.16时,它的工作非常完美。现在我已经将jQuery-ui从jQuery-ui-1.8.16升级到jQuery-ui-1.9.1。

现在问题是当我单击对话框的“最小化”按钮时,对话框被最小化。但是当我单击“最大化”按钮恢复大小和位置时,对话框保持原样并且控制台上显示错误: Uncaught Error: no such method '_generatePosition' for draggable widget instance

如需更多理解,请查看http://jsfiddle.net/S4LzA/5/

请让我知道如何解决这个问题。谢谢。

1 个答案:

答案 0 :(得分:0)

看起来dialog-extra试图通过小部件网桥调用_generatePosition()的内部draggable方法(请注意前导下划线):

self.uiDialog.draggable('_generatePosition')

在升级库时,依赖内部方法可能会导致问题(因为内部方法可能会改变或消失),但这甚至不是问题。允许从扩充元素调用方法的小组件桥接器不会首先将调用转发到内部方法。据我所知,该代码也不适用于jQuery UI 1.8.16。

一种可能的解决方案是在小部件实例本身上调用_generatePosition()。尝试修改插件并将上面的代码更改为:

self.uiDialog.data("ui-draggable")._generatePosition();