如何判断一个元素是否是一个jquery-ui小部件?

时间:2014-03-19 16:36:15

标签: javascript html jquery-ui

我的应用程序基于100个文件。 “逻辑”确定哪些将包含在某个显示中。

在其中许多中,我有jquery-ui-widget(对于这个问题,我会假设它们都是tabs)。
其中一些是定制的,而另一些则不是。
自定义选项卡在完整输出的开头(在html标题中)单独设置。 其他人将在以后全球设定。

HTML

<div class="some-element">...
<div class="some-other-element">...
<div class="tabs">...
<div class="tabs">...
<div class="tabs">...
<div class="tabs">...

的JavaScript

$(".tabs .some-element").tabs({/*some settings*/});
$(".tabs .some-other-element").tabs({/*some other settings*/});
$(".tabs").tabs(); // no settings

我的问题是:我希望最后一次javavscript调用排除已经初始化的元素。

如何判断对象是否已设置?

2 个答案:

答案 0 :(得分:2)

正如@mhu所述,您可以检查小部件名称下的数据值。窗口小部件框架还设置了一个与窗口小部件名称相匹配的选择器。这将允许您测试项目是否为具有以下内容的小部件:

if ($(testElement).is(":ui-tabs")) {
    // testElement is a ui-tabs widget
}

这实际上是由data属性支持的,该属性只能用于测试单个项目。选择器可以如下使用:

$(".tabs:ui-tabs").each(function() {
    // every ".tabs" which is a widget will get a call.
});

答案 1 :(得分:1)

您可以检查数据(以下示例适用于jQueryUI 1.9 +):

if ($(".tabs").data("ui-tabs")) {
    // ui tab
}