没有这样的方法'添加'为标签小部件实例

时间:2013-05-22 20:44:53

标签: jquery jquery-ui asp.net-mvc-4 jquery-ui-tabs razor-2

我正在使用jqueryui标签小部件。我正在尝试动态添加标签。 尝试调用$('#id')时出现以下错误:tabs('add',...): “没有这样的方法'添加'用于标签小部件实例

我正在使用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方法后 - 我用以下代码替换了该代码: 谢谢凯文,

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

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

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

单击选项卡时会出现异常。

3 个答案:

答案 0 :(得分:2)

选项现在由第一个选项卡的选项有效,即$('#tSheet').tabs('option','active', 0)覆盖。使用制表符数组中的标签号(键)代替0来选择(激活)其他标签。

答案 1 :(得分:1)

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

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

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

Here你可以查看html的外观。

Nice jsFiddle example of adding new elements.

答案 2 :(得分:0)

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

您的解决方案有效。我认为您的代码中存在拼写错误。 div的ID前面不应该有#。

$('#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..
}