首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery标签-获取所选标签的标签模板

jQuery标签-获取所选标签的标签模板
EN

Stack Overflow用户
提问于 2011-09-08 21:28:42
回答 2查看 435关注 0票数 0

我有3个标签。默认情况下Tab1处于选中状态。如果我单击Tab2;,我想获取以前选择的选项卡。

我试过了:

代码语言:javascript
复制
var previousTab;

jQuery(function () {
    jQuery("#tabs").tabs({
            select: function (event, ui){
            doSomething(previousTab);
            previousTab = jQuery(ui.tab);
            },
            create: function (event, ui) {
            previousTab = jQuery(ui.tab);
        }
    });
});

这不管用。有人能告诉我这个问题的解决方案吗?

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-11 11:53:49

我用show函数解决了这个问题。previousTab是全局范围内的变量。

代码语言:javascript
复制
jQuery(function () {
    jQuery("#tabs").tabs({
        select: function (event, ui) {
            previousTab = jQuery(ui.tab);
        },
        show: function (event, ui) {
            previousTab = jQuery(ui.tab);
        }
    });
});
票数 0
EN

Stack Overflow用户

发布于 2011-09-09 23:43:42

原因是,在create中,ui是一个空对象。如果您知道在开始时选择了第一个选项卡,那么您可以简单地将上一个选项卡变量分配给create的第一个选项卡。

一个建议是:不必创建全局变量来跟踪上一个选项卡,可以将其存储在#tabs元素中。通常,避免在全局范围内创建变量是一种好的做法。

代码语言:javascript
复制
$('#tabs').tabs({
    select: function(event, ui) {
        var previousTab = $(this).data('previousTab');
        if (previousTab !== undefined)
            console.log(previousTab);
        $(this).data('previousTab', $(ui.tab));
    },
    create: function(event, ui) {
        $(this).data('previousTab', $($(this).find('ul > li > a').get(0)));
    }
});

看看它的实际效果:http://jsfiddle.net/william/yMbhA/2/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7348842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档