Wątek przeniesiony 2014-03-24 09:14 z Inne języki programowania przez somekind.

Slider Jquery - błąd : Uncaught TypeError: Object function() has no method

0

Cześć,

dopiero co zabrałem się za Jquery i postanowiłem napisać swój własny slider lecz coś mi nie działa. Wyskakuje mi błąd taki jak w temacie posta, poniżej przedstawiam swój kod, jeśli bylibyście w stanie przyspieszyć mój proces uczenia , podsuwając jakaś podpowiedź byłbym wdzięczny.

 

$(document).ready(function(){
        var Slider01 = (function(){

                var main = function(i){
                                var selector = '.slide';
                                var sliders = $(this).find(selector);
                                var len = sliders.length;

                                sliders.eq(i).animate({'opacity': 1}, 800);
                                
                                if (i < (len - 1)){
                                        i++;
                                }else{
                                        i=0;
                                }
                                main(i);
                };

                var init = function(){
                             setTimeout(function(){
	                        main(0);	
	                      },100)
                };
         });
        Slider01.init();
});

Dołączyłem jako załącznik również cały projekt JQ jaki zrobiłem.

0

Już zrobiłem ten slider, można zamknąć ten wątek.

0

@PiotroSan: Napisz jak rozwiązałeś temat, ew. mogę wywalić temat do kosza, bo aktualnie nie przedstawia żadnej wartości, a skoro jest rozwiązany, to i odpowiadać nie ma już komu.

0

No więc tak , oczywiście nie znałem całej konstrukcji budowy funkcji w języku Jquery , po pewnym przyuczeniu i pomocy ze strony bardziej zaawansowanego specjalisty o pseudonimie G powstało już coś lepszego. Do funkcji zostało dodane również wyzerowanie widoczności czyli opacity zostaje ustawione na zero w chwili gdy przechodzą wszystkie zdjęcia.


$(document).ready(function(){
        var Slider01 = (function() {
                var main = function(i){
                                var selector = '.slide';
                                var sliders = $(selector);
                                var len = sliders.length;
                                
				var next = i;
				if (next < len){
                                        next++;	
                                }else{
              				sliders.css('opacity', 0);	
					main(0);	
                                    return;		
                                }
							
				sliders.eq(i).animate({'opacity': 1}, 
                                                                        1500,	
				function() {	
		                	main(next);
		        	});
                                
                };

                var init = function(){
                            setTimeout(function(){
	                        main(0);	
	                      },1000)
                };
				return {
					main : main,
					init : init
				};
			})();
 
	Slider01.init();
});

Jak można zauważyć naistotniejsza zmiana to dodanie słów kluczowych return.

1 użytkowników online, w tym zalogowanych: 0, gości: 1