Javascript jQuery选项卡";加上「;方法创建两个<;部门>;元素
jQuery的tabs ui中的“add”方法向我的“#tabs”元素添加了一个额外的选项卡面板div,这让我很沮丧。这是我用来添加一个选项卡的代码行,该选项卡显示通过Ajax获取内容的日历:Javascript jQuery选项卡";加上「;方法创建两个<;部门>;元素,javascript,jquery-ui,Javascript,Jquery Ui,jQuery的tabs ui中的“add”方法向我的“#tabs”元素添加了一个额外的选项卡面板div,这让我很沮丧。这是我用来添加一个选项卡的代码行,该选项卡显示通过Ajax获取内容的日历: $("#tabs").tabs("add", "tabContent.php?id=48&tab=calendar", "Calendar"); 最初只有一个标签,现在应该有两个。事实上,元素中现在存在两个选项卡,但神秘的是,现在有三个元素对应于选项卡面板,如下所示。如果不是因为一个新创建的元素
$("#tabs").tabs("add", "tabContent.php?id=48&tab=calendar", "Calendar");
最初只有一个标签,现在应该有两个。事实上,
元素中现在存在两个选项卡,但神秘的是,现在有三个
元素对应于选项卡面板,如下所示。如果不是因为一个新创建的
元素没有隐藏,即使它对应于一个不活动的选项卡,这也不会是一个问题。因此,
虽然是空的,但在我的第一个和原始选项卡面板的底部占据了一块空间。很抱歉代码混乱,但我包含了所有原始jQuery标记,以准确显示jQuery的功能
<div id="tabs" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a href="#tabs-1">Tab 1</a></li>
<li class="ui-state-default ui-corner-top"><a href="#ui-tabs-2"><span>Calendar</span></a></li>
</ul>
<div id="tabs-1" class="ui-tabs-panel ui-widget-content ui-corner-bottom">
Original Tab
</div>
<!-- Why are there two divs here?? -->
<!-- Note that first <div> below not given class 'ui-tabs-hide' -->
<div id="ui-tabs-2" class="ui-tabs-panel ui-widget-content ui-corner-bottom"></div>
<div id="ui-tabs-1" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"></div>
</div>
原始选项卡
注意底部的两个
元素,其中应该只有一个。我也遇到了同样的问题。我也使用AJAX选项卡
所以我查看了jQueryUI的源代码
函数add
创建了这个额外的div,但是随后调用函数\u tabify
,它创建了没有“ui tabs hide”类的额外div。我认为,它创建了额外的div,因为它找不到第一个div
这两个函数都使用\u tabId
获取新选项卡的id,并使用u()
函数获取选项卡的索引
它不起作用的原因是在add和tabify函数中调用了两次u()
但是u()
以这种方式使用变量v
:++v
,因此它为您提供索引并添加1
因此,在add
函数中,创建了id为“ui-tabs-1”的div,但在tabify中,您得到了另一个id=“ui-tabs-2”,无法找到它,并创建了另一个div
我试过这样做:在第二次调用_tabId:I=a._tabId(f)之前添加了if(!b)v--
代码>。它在\ tabify
功能中
Var b在创建选项卡时为true,在添加新选项卡时为false。还有一个函数用b=false调用_tabify,它是_setOption。但是我不知道这个添加的代码是否会破坏它。我也有同样的问题。你有什么进展吗
**编辑:参见
**
我添加了我的标签(这是为了模型的目的)。。。我在容器里得到了同样神秘的标签。
在创建新选项卡之前,我还尝试通过以下方式删除所有选项卡:
for (var i = number - 1; i >= 0; i--) {
alert('removing ' + i);
$('#tabs').tabs('remove', i);
alert('removed ' + i);
}
这个循环似乎可以识别非神秘的标签,但却看不到神秘的标签
因此,如果我添加1个选项卡,将创建2个
我通过循环从选项卡列表中删除所有。。它标识了1。。。神秘的div不会被删除
如果我去重新添加,请说。。再创建2个选项卡,4个。
当我把它们拿走的时候。。显示的2个被删除,很好。。。但神秘女主角却没有
显示和功能都很好。。除此之外,我还有一个不断扩大的神秘隐藏div的容器。。在页面上垂直扩展选项卡。请包含更多代码,包括启动选项卡的部分。
for (var i = number - 1; i >= 0; i--) {
alert('removing ' + i);
$('#tabs').tabs('remove', i);
alert('removed ' + i);
}