ciao a tutti.
sto scrivendo un plugin jQuery facile facile che dovrebbe cambiare lo sfondo della pagina sia a tempo sia in base al click su oggetti nella pagina.
il punto è questo, visto che il ciclo è basato su un setInterval, non riesco ad interromperlo in modo che al click su un nuovo oggetto, il ciclo riparta con le immagini "nuove"
codice:
(function($){
var aux;
$.bg_slide = function(selector, settings){
if(aux === "" || !aux) aux = selector;
clearInterval(timer); // a livello logico, ma NON va
// settings
var config = {
'delay': 5000,
'fadeSpeed': 300
};
if ( settings ){ $.extend(config, settings); }
//preload delle immagini
var imgs = new Array();
var base_path = "img/sfondi/";
for(var i = 1; i < 10; i++) { imgs[i] = $("<img class='sfondo' />").attr('src', base_path+selector+"/"+i+".jpg").css({"display": "none", "z-index": 0, "opacity": 0.85, filter: "alpha(opacity=85)", filter: "\"alpha(opacity=85)\"" }); }
//appendo la prima immagine
$('body').prepend(imgs[1]);
//altro inutile ai fini della risoluzione del problema
...
var i = 1;
// cambia sfondo
var timer = setInterval(function(){
i = ( i+1 == 9 ) ? 1 : i+1;
$('.menu').fadeOut(config.speed,function(){
$('.menu').css("background-image", "url("+base_path+selector+"/"+i+".jpg)").fadeIn(config.fadeSpeed);
});
$('.sfondo').fadeOut(config.fadeSpeed, function(){
$('.sfondo').attr('src', base_path+selector+"/"+i+".jpg").fadeIn(config.fadeSpeed);
});
}, config.delay);
return this;
};
}) (jQuery);
il punto è che quando clicco su un nuovo oggetto, invece di caricare i nuovi dati nel selector sovrascrivendo i precedenti, li AGGIUNGE.
non capisco quindi se si debba interrompere il ciclo o c'è un altro errore da qualche altra parte..
help pls! 