6

我目前正在将一些代码从 1.8 迁移到 1.9.2,并且我面临着小部件在初始化之前被破坏的情况。例如,现在在 1.9.2 中可能出现以下错误(抛出异常):有什么方法可以检查调用是否可行:

$div.buttonset("destroy")
4

2 回答 2

3

您可以使用 $element.data("widget-name") 检查小部件的存在,然后调用您想要的。

小部件的正确名称是命名空间 + 破折号 + 插件名称。例如:ui-tabs、ui-dialog 等。

在我的项目中,我有一个全名为 mediaITPro.player 的小部件。传递给数据调用的正确名称是“mediaITPro-player”。

以下行为我完成了这项工作:

if (p.data("mediaITPro-player")) p.player("destroy");

我希望这有帮助。

PS 关于.data 命名约定的文档调用 http://jqueryui.com/upgrade-guide/1.9/#changed-naming-convention-for-data-keys

于 2013-04-20T14:57:43.463 回答
1

至少对于对话框小部件,您可以使用div.is(":ui-dialog"). 请注意,旧的 JQuery UI 1.10.1if (div.data("dialog"))不起作用(至少对我而言)。

于 2013-03-15T09:49:27.610 回答