Changeset 5546
- Timestamp:
- 05/10/08 08:27:36 (8 months ago)
- Files:
-
- 1 modified
-
trunk/ui/ui.tabs.js (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ui/ui.tabs.js
r5545 r5546 427 427 428 428 // no remote or from cache - just finish with callback 429 if (!url || ($.data(a, 'cache.tabs') && !bypassCache)) {429 if (!url || !bypassCache && $.data(a, 'cache.tabs')) { 430 430 callback(); 431 431 return; 432 432 } 433 433 434 var inner = function(parent) { 435 var $parent = $(parent), $inner = $parent.find('*:last'); 436 return $inner.length && $inner || $parent; 437 }; 438 434 439 // load remote from here on 435 440 if (o.spinner) { 436 var $span = $('span', a); 437 $span.data('label.tabs', $span.html()).html('<em>' + o.spinner + '</em>'); 438 } 439 var finish = function() { 440 self.$tabs.filter('.' + o.loadingClass).each(function() { 441 $(this).removeClass(o.loadingClass); 442 if (o.spinner) { 443 var $span = $('span', this); 444 $span.html($span.data('label.tabs')).removeData('label.tabs'); 445 } 446 }); 441 var label = inner(a).html(); 442 inner(a).wrapInner('<em></em>') 443 .find('em').data('label.tabs', label).html(o.spinner); 444 } 445 var cleanup = function() { 446 self.$tabs.filter('.' + o.loadingClass).removeClass(o.loadingClass) 447 .each(function() { 448 if (o.spinner) 449 inner(this).parent().html(inner(this).data('label.tabs')); 450 }); 447 451 self.xhr = null; 448 452 }; … … 451 455 success: function(r, s) { 452 456 $(a.hash).html(r); 453 finish();457 cleanup(); 454 458 455 459 if (o.cache) … … 471 475 // terminate pending requests from other tabs and restore tab label 472 476 this.xhr.abort(); 473 finish();477 cleanup(); 474 478 } 475 479 $a.addClass(o.loadingClass);
