Причина в том, что на 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/.