Tabs: fixed stopping a rotation

This commit is contained in:
Klaus Hartl 2009-02-28 22:10:30 +00:00
parent 517d5ab62c
commit a02ac5f372

View File

@ -639,29 +639,30 @@ $.extend($.ui.tabs.prototype, {
var self = this, o = this.options, t = o.selected; var self = this, o = this.options, t = o.selected;
function rotate() { var rotate = function() {
clearTimeout(self.rotation); clearTimeout(self.rotation);
self.rotation = setTimeout(function() { self.rotation = setTimeout(function() {
t = ++t < self.anchors.length ? t : 0; t = ++t < self.anchors.length ? t : 0;
self.select(t); self.select(t);
}, ms); }, ms);
} };
var stop = !continuing ?
function(e) {
if (e.clientX) { // in case of a true click
clearTimeout(self.rotation);
self.element.unbind('tabsshow', rotate);
}
} :
function(e) {
t = o.selected;
rotate();
};
// start rotation // start rotation
if (ms) { if (ms) {
this.element.bind('tabsshow', rotate); // will not be attached twice this.element.bind('tabsshow', rotate); // will not be attached twice
this.anchors.bind(o.event + '.tabs', !continuing ? this.anchors.bind(o.event + '.tabs', stop);
function(e) {
if (e.clientX) { // in case of a true click
clearTimeout(self.rotation);
self.element.unbind('tabsshow', rotate);
}
} :
function(e) {
t = o.selected;
rotate();
}
);
rotate(); rotate();
} }
// stop rotation // stop rotation