我有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);
}
});
});这不管用。有人能告诉我这个问题的解决方案吗?
提前谢谢。
发布于 2011-09-11 11:53:49
我用show函数解决了这个问题。previousTab是全局范围内的变量。
jQuery(function () {
jQuery("#tabs").tabs({
select: function (event, ui) {
previousTab = jQuery(ui.tab);
},
show: function (event, ui) {
previousTab = jQuery(ui.tab);
}
});
});发布于 2011-09-09 23:43:42
原因是,在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)));
}
});看看它的实际效果:http://jsfiddle.net/william/yMbhA/2/。
https://stackoverflow.com/questions/7348842
复制相似问题