0

我正在使用 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/

请让我知道如何解决这个问题。在此先感谢。

4

1 回答 1

0

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

self.uiDialog.draggable('_generatePosition')

依赖内部方法可能会导致库升级时出现问题(因为内部方法可能会更改或消失),但这甚至不是问题所在。允许从增强元素调用方法的小部件桥首先不会将调用中继到内部方法。据我所知,该代码也不应该在 jQuery UI 1.8.16 中工作。

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

self.uiDialog.data("ui-draggable")._generatePosition();
于 2012-11-02T11:13:03.770 回答