检查的jQuery UI选项卡已被初始化(不检查类)(check if jQuery UI tabs

2019-06-28 07:00发布

使用jQuery UI选项卡 - 我已经写了与UI选项卡集成了一个插件。 我有这个插件安装到启动的jQuery UI选项卡,如果它.tabs()没有被调用,但这只是做一个简单的类检查:

 if(!$globalTabs.hasClass("ui-tabs")){
    $globalTabs.tabs();
 }

但是,这是有问题的,因为经常避免FOUC,开发商在UI类的标签添加到得到的document.ready之前更好的初始渲染。

我可以检查不同的类,如`UI-WIDGET1,但不知道是否有另一个/更好的办法?

Answer 1:

您可以查询与所连接的部件数据() :

if (!$globalTabs.data("tabs")) {
    $globalTabs.tabs();
}

这种行为被记录在小部件工厂的jQuery UI的页面开发与规划百科 :

  • 插件实例通过访问$( "#something" ).data( "pluginname" )

    • 含有DOM元素的jQuery对象的参考文献是可作为实例作为一个属性this.element ,所以很容易去来回物体和元件之间。

更新:从jQuery UI的1.9起, 小部件键变成小部件的全名,用破折号代替点 ,如:

if (!$globalTabs.data("ui-tabs")) {
    $globalTabs.tabs();
}

使用不合格的名称仍支持的1.9,但不建议,并支持将在1.10被丢弃。



Answer 2:

不知它会导致一些错误,当我尝试检查实例。

我需要重新初始化标签和我的一个尝试捕捉的伎俩:

try {
    $('.mytabs').tabs('destroy');
} catch (exception) {}

之后,只是重新初始化:

$('.mytabs').tabs();


文章来源: check if jQuery UI tabs have been initialized (without checking for class)