我目前正在将一些代码从 1.8 迁移到 1.9.2,并且我面临着小部件在初始化之前被破坏的情况。例如,现在在 1.9.2 中可能出现以下错误(抛出异常):有什么方法可以检查调用是否可行:
$div.buttonset("destroy")
我目前正在将一些代码从 1.8 迁移到 1.9.2,并且我面临着小部件在初始化之前被破坏的情况。例如,现在在 1.9.2 中可能出现以下错误(抛出异常):有什么方法可以检查调用是否可行:
$div.buttonset("destroy")
您可以使用 $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
至少对于对话框小部件,您可以使用div.is(":ui-dialog")
. 请注意,旧的 JQuery UI 1.10.1if (div.data("dialog"))
不起作用(至少对我而言)。