jQuery tab plugin

时间:2024-01-13 22:43:02
/*
www.keleyi.com/
*/
; (function ($) {
$.fn.extend({
Tabs: function (options) {
// 处理参数
options = $.extend({
event: 'mouseover',
timeout: 0,
auto: 0,
callback: null
}, options); var self = $(this),
tabBox = self.children('div.tab_box').children('div'),
menu = self.children('ul.tab_menu'),
items = menu.find('li'),
timer; var tabHandle = function (elem) {
elem.siblings('li').removeClass('current').end().addClass('current'); tabBox.siblings('div').addClass('hide').end().eq(elem.index()).removeClass('hide');
}, delay = function (elem, time) {
time ? setTimeout(function () { tabHandle(elem); }, time) : tabHandle(elem);
}, start = function () {
if (!options.auto) return;
timer = setInterval(autoRun, options.auto);
}, autoRun = function () {
var current = menu.find('li.current'),
firstItem = items.eq(0),
// li的长度
len = items.length, // 当前元素的索引(0 +1)
index = current.index() + 1, // item 就是当前元素 li
item = index === len ? firstItem : current.next('li'), // 当前元素的索引
i = index === len ? 0 : index;
current.removeClass('current');
item.addClass('current'); tabBox.siblings('div').addClass('hide').end().eq(i).removeClass('hide');
console.log(i);
}; //items.bind(options.event, function () {
// delay($(this), options.timeout);
// if (options.callback) {
// options.callback(self);
// }
//}); if (options.auto) {
start();
self.hover(function () {
clearInterval(timer);
timer = undefined;
}, function () {
start();
});
} return this;
}
});
})(jQuery);