Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832

    [jQuery] Interrompere il ciclo in un plugin

    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!

  2. #2

  3. #3
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    grazie,

    ma alla fine ieri notte intorno alle 4.30 ce l'ho fatta a risolvere
    mi sono dimenticato di postare la soluzione, vista l'ora tarda.

    in effetti ho capito che toppavo nell'assegnazione dell'ID dell'evento Set Interval. gli davo una variabile locale.

    con "window.mio_id" sono riuscito pian piano a migliorare ed approfondire la questione.
    sono andato a letto, stremato, ma che ero riuscito a risolvere tutto e a fare anche altre cose

    posso chiedere, con l'occasione, un piccolo OT, come diavolo si fa a postare sul forum di jQuery? (Non trovo alcun link per aggiungere un nuovo topic! )

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.