Вот небольшой плагин, который я написал для своего сайта. Это галерея для jQuery
(function($){
var currentSlide = 0;
var slides = new Array();
var nav = new Array();
var timer;
var wait = 2200; // Delay before changing slides
var speed = 250; // Speed at which slides fade
var canChange = true; // To prevent bugs between changing slides
var methods = {
init:function(options){
$('.slide',this).each(function(){
$(this).hide();
slides[slides.length] = $(this);
});
$(this).append('<div class="slideshow-nav-container"></div>');
for(var i=0;i<slides.length;i++){
$('.slideshow-nav-container',this).append('<a href="#" class="slideshow-nav">' + (i + 1) + '</a>');
}
$('.slideshow-nav').each(function(key,value){
nav[nav.length] = $(this);
if(key == 0){
$(this).addClass('slideshow-nav-active');
}
$(this).click(function(){
$('.slideshow-nav').removeClass('slideshow-nav-active');
methods['set'].call(this,key);
$(this).addClass('slideshow-nav-active');
return false;
});
});
methods['next'].call(this,true);
return true;
},
next:function(init){
if(init){
methods['change'].call(this,currentSlide);
}
else{
methods['change'].call(this,currentSlide + 1);
}
timer = setTimeout(
function(){
methods['next'].call(this,false);
},
wait);
return true;
},
set:function(slide){
methods['change'].call(this,slide);
clearTimeout(timer);
},
change:function(slide){
if(canChange){
canChange = false;
$(slides[currentSlide]).fadeOut(speed,function(){
$(nav[currentSlide]).removeClass('slideshow-nav-active');
if(slide > slides.length - 1 || slide < 0){
slide = 0;
}
currentSlide = slide;
$(nav[currentSlide]).addClass('slideshow-nav-active');
$(slides[currentSlide]).fadeIn(speed);
canChange = true;
return true;
});
}
return true;
}
};
$.fn.slideshow = function(method){
if(methods[method]){
return methods[method].apply(this,Array.prototype.slice.call(arguments,1));
}else if(typeof method === 'object' || !method){
return methods.init.apply(this,arguments);
}else{
$.error('Method ' + method + ' does not exist!');
}
};
})(jQuery);
Надеюсь, вы сможете посмотреть на это и рассказать, как вызывается каждая функция. Если нет, пожалуйста, прокомментируйте это, и я объясню это далее.