我正在使用jQuery创建标签。我把javascript代码放在一个单独的文件中。 tabset变量用于引用选项卡。 Javascript具有以下内容:
$(document).ready(function() {
//add a tabset
var tabset = $("#tabset").tabs({
/*add close button*/
tabTemplate: "<li><a href='#{href}'>#{label}</a> <span class='ui-icon ui-icon-close'>Remove Tab</span></li>",
/*cache tabs*/
cache: true,
/*immediately select a just added tab*/
add: function(event, ui) {
//alert(ui.panel.id);
tabset.tabs('select', '#' + ui.panel.id);
}
});
我可以使用下面的语句添加另一个标签。如果我从这个javascript调用此语句,这可以正常工作。
tabset.tabs('add', url, nameToCheck);
我想在另一个javascript文件中添加一个名为#tabset的tabset的新选项卡,我无法使用tabset变量,因为它超出了范围。
我尝试使用jquery选择器来查找tabset并调用add函数,但是没有添加选项卡。请查看以下声明:
$('#tabset').tabs('add', 'url', 'newTab');
我的问题是:如何从任何javascript文件向现有的tabset添加另一个标签?如何选择现有的tabset并调用add函数?
祝你好运, Javanus
答案 0 :(得分:1)
尝试这样做:
$(document).ready(function() {
$("#tabset").tabs({
tabTemplate: yourtabtemplate,
cache: true,
add: function(event, ui) {
// Change 'tabset' to 'this'
this.tabs('select', '#' + ui.panel.id);
}
});
在另一个JS文件中:
var tabset = $('#tabset');
tabset.tabs('add', url, nameToCheck);
或者简单地说:
$('#tabset').tabs('add', 'url', 'newTab');
编辑:问题是您可能在第二个文件之前添加了第一个文件。因此,$('#tabset')
没有来自JQueryUI的标签功能,$('#tabset').tabs('add')
无效。
切换顺序如下:
file1.js:
$(document).ready(function() {
$("#tabset").tabs({
tabTemplate: yourtabtemplate,
cache: true,
add: function(event, ui) {
// Change 'tabset' to 'this'
this.tabs('select', '#' + ui.panel.id);
}
});
file2.js:
$('#tabset').tabs('add', 'url', 'newTab');
您索引视图:
<script src="scripts/file1.js"></script>
<script src="scripts/file2.js"></script>
检查文件顺序。快乐的编码!