2

我正在使用 jqueryui 选项卡小部件。我正在尝试动态添加选项卡。我在尝试调用 $('#id').tabs('add',...) 时收到以下错误:“ no such method 'add' for tabs widget instance

我正在使用 ASP.NET MVC.4 - Razor - 这是部分视图。容器视图的布局包括正确的 jquery 包包含:

@Scripts.Render("~/bundles/jqueryui")

我正在使用 jquery v2.0.0 和 jquery v1.10.2。

这是初始化期间调用的一些代码:

$('#tSheet').tabs();
$('#tSheet').tabs("add", '', 'Tab test one');
$('#tSheet').tabs("add", '', 'Tab test two');

和html:

<div id="tSheet">
    <ul>
    </ul>
</div>

对我为什么会收到此错误有任何想法吗?谢谢你,吉姆

在得知 jquery-u1 1.10.2 删除了 add 方法后 - 我用以下代码替换了该代码:谢谢 Kevin,

添加用以下调用刷新替换 add 会导致不同的错误。

$('#tSheet > ul').append('<li><a href="#general">General</a></li>');
$('#tSheet').append('<div id="#general">Some text</div>');

$('#tSheet').tabs('refresh');

当我单击选项卡时,这会导致异常。

4

3 回答 3

2

jquery ui 现在没有add方法。您可以在此处阅读文档。

但是您可以通过将 html 添加到您的内容来解决您的问题,例如使用jquery .append()函数。然后创建标签:

$('#tSheet').tabs();

例如,您可以在这里查看 html 的外观。

添加新元素的好 jsFiddle 示例。

于 2013-05-22T20:55:27.953 回答
2

选择现在被选项活动覆盖,即$('#tSheet').tabs('option','active', 0)第一个选项卡。使用选项卡数组中的选项卡编号(键)代替0选择(激活)其他选项卡。

于 2013-09-01T15:25:56.773 回答
0

我想我会在这里发表评论,以防其他人遇到这个问题。

您的解决方案有效。我认为您的代码中有错字。id 前面不应该有 # div

$('#tSheet > ul').append('<li><a href="#general">General</a></li>');
$('#tSheet').append('<div id="general">Some text</div>');
$('#tSheet').tabs('refresh');

理想情况下,如果选项卡已经存在,我们不想添加选项卡。

var elements_ = [];
$('#tSheet > div').each(function(){
    elements_.push(this.id); 
});
if ($.inArray(title, elements_) === -1){ //add the tab here..
}
于 2016-11-30T06:35:11.313 回答