我正在使用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');
单击选项卡时会出现异常。
答案 0 :(得分:2)
选项现在由第一个选项卡的选项有效,即$('#tSheet').tabs('option','active', 0)
覆盖。使用制表符数组中的标签号(键)代替0
来选择(激活)其他标签。
答案 1 :(得分:1)
现在jquery ui上没有add
方法。您可以阅读文档here。
但是您可以通过向您的内容添加html来解决您的问题,例如使用jquery .append()功能。然后创建标签:
$('#tSheet').tabs();
Here你可以查看html的外观。
答案 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..
}