我有3个标签。默认情况下选择Tab1。如果我点击Tab2;我想获得之前选择的标签。
我试过了:
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);
}
});
});
这不起作用。谁能告诉我这个解决方案?
先谢谢。
答案 0 :(得分:0)
原因是,在create
,ui
是一个空对象。如果您知道在开始时选择了第一个标签,则只需将上一个标签变量分配到create
的第一个标签。
一个建议:您可以将其存储在#tabs
元素中,而不是创建全局变量来跟踪上一个选项卡。避免在全局范围内创建变量通常是一种很好的做法。
$('#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)));
}
});
答案 1 :(得分:0)
我使用show
函数解决了它。
previousTab
是全局范围内的变量。
jQuery(function () {
jQuery("#tabs").tabs({
select: function (event, ui) {
previousTab = jQuery(ui.tab);
},
show: function (event, ui) {
previousTab = jQuery(ui.tab);
}
});
});