从另一个 javascript 动态添加 jquery 选项卡

发布于 2024-10-21 18:12:08 字数 985 浏览 0 评论 0原文

我正在使用 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 变量,因为它超出了范围。

我尝试使用 jquery 选择器查找选项卡集并调用添加函数,但未添加选项卡。请检查下面的声明:

$('#tabset').tabs('add', 'url', 'newTab');

我的问题是:如何从任何 javascript 文件向现有选项卡集添加另一个选项卡?如何选择现有选项卡集并调用添加函数?

此致, 爪哇努斯

I am using jQuery to create tabs. I put the javascript code in a separate file. tabset variable is used to reference the tab. Javascript has the following content:

$(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);
    }
});

I could add another tab with the statement below. This works fine if I call this statement from this javascript.

tabset.tabs('add', url, nameToCheck);

I would like to add a new tab to the tabset called #tabset from another javascript file where I could not use tabset variable because it is out of scope.

I try to use jquery selector to find tabset and call add function but the tab is not added. Please check the statement below:

$('#tabset').tabs('add', 'url', 'newTab');

My question is: how to add another tab to existing tabset from any javascript file? How to select an existing tabset and to call an add function?

Best regards,
Javanus

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

呆头 2024-10-28 18:12:08

尝试这样做:

$(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>

检查文件顺序。快乐编码!

Try to do this:

$(document).ready(function() {
   $("#tabset").tabs({
    tabTemplate: yourtabtemplate,
    cache: true,
    add: function(event, ui) {
        // Change 'tabset' to 'this'
        this.tabs('select', '#' + ui.panel.id);
    }
});

And in the other JS file:

var tabset = $('#tabset');
tabset.tabs('add', url, nameToCheck);

Or simply:

$('#tabset').tabs('add', 'url', 'newTab');

EDIT: the problem is that you probably are adding your first file before your second file. So, $('#tabset') doesn't have tabs feature from JQueryUI and $('#tabset').tabs('add') is not working.

Switch the order like this:

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');

You index view:

<script src="scripts/file1.js"></script>
<script src="scripts/file2.js"></script>

Check file order. Happy codding!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文