我目前正在将一些代码从1.8迁移到1.9.2,并且我面临的情况是小部件在被初始化之前被销毁。例如,现在1.9.2中可能出现以下错误(抛出异常):有什么方法可以检查调用是否可能:
$div.buttonset("destroy")
答案 0 :(得分:3)
您可以使用$ element.data(“widget-name”)检查小部件的存在,然后调用您想要的内容。
小部件的正确名称是namespace + dash + plugin name。例如:ui-tabs,ui-dialog等。
在我的项目中,我有一个全名为mediaITPro.player的小部件。传递给数据通话的正确名称是“mediaITPro-player”。
以下代码为我完成了这项工作:
if (p.data("mediaITPro-player")) p.player("destroy");
我希望这会有所帮助。
P.S。关于.data调用的命名约定的文档 http://jqueryui.com/upgrade-guide/1.9/#changed-naming-convention-for-data-keys
答案 1 :(得分:1)
至少对于对话框小部件,您可以使用div.is(":ui-dialog")
。请注意,使用JQuery UI 1.10.1时,旧的if (div.data("dialog"))
不起作用(至少对我而言)。