• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

slider problem

Object Storage Arubacloud
0 głosów
310 wizyt
pytanie zadane 16 maja 2016 w JavaScript przez niezalogowany

siemka mam problem z prostym sliderem, wydaje mi sie że funkcja zmienslajd sie nie wykonuje wgl.

oto kod

var s=2;
// s to licznik
		var slid=document.getElementById("sliderfoto");
//sliderfoto to id tagu <img/> ktory ma src ustawione na "s1.png"
		function zmienslajd()
		{
		if(s>4) s=1;
		
		s++;
		var source = "s" + s+".png";
// tu jest 2 razy s bo s to nazwa zmiennej licznika oraz fotki nazywaja sie s1 s2 s3 s4 s5.png
		slid.src=source;
		setTimeout("zmienslajd()",2000);
		}

tag body wyglada tak:

<body onload="time()"  onload="zmienslajd()">

wydaje mi sie ze zmienslajd() sie nie wywoluje.

dzieki za pomoc

 

komentarz 16 maja 2016 przez ScriptyChris Mędrzec (190,190 p.)

Czy konsola pokazuje jakieś błędy?

Oprócz tego co napisał Mateusz821, to funkcja setTimeout() przyjmuje jako pierwszy parametr funkcje, a nie string:

https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout

Mógłbyś jeszcze podać kod HTML.

komentarz 16 maja 2016 przez niezalogowany

dzieki za rady.

przenioslem onload="time()"do tagu <img> ktory jest w <body> ale tak chyba moze byc?

i teraz wywolywanie dzialalo ale zdjecia dalej sie ni zmienialy. zamienilem zapis var slid = document.getelementbyid()   oraz slid.src = cos tam na samo document.getelementbyid().src= cos tam    i tak działa.

dzieki za pomoc a poza tym kiedy uzywa sie  addEventListener? bo to rozumiem dziala od klikniecia wiec do slidera to chyba tej funkcji nie?

jeszcze raz dzieki za pomoc i pozdrawiam 

komentarz 16 maja 2016 przez Mateusz821 Bywalec (2,940 p.)

addEventListener nie służy tylko do kliknięcia, tylko może takżee służyć np. jako window ready, czyli kiedy strona się załadowała to...

komentarz 16 maja 2016 przez ScriptyChris Mędrzec (190,190 p.)

przenioslem onload="time()"do tagu <img> ktory jest w <body> ale tak chyba moze byc?

Nie stosuj atrybutów w HTML, które powodują wykrywanie zdarzeń. Do tego służy wspomniany już addEventListener. Pozwala on na nasłuchiwanie, określonych w parametrze podanym jako pierwszy, zdarzeń które wystąpią na danym elemencie.

https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

Lista dostępnych eventów:

https://developer.mozilla.org/en-US/docs/Web/Events

 zamienilem zapis var slid = document.getelementbyid()   oraz slid.src = cos tam na samo document.getelementbyid().src= cos tam    i tak działa.

 Za pomocą console.log() możesz sobie w każdym miejscu kodu wyświetlić, co aktualnie znajduje się w danej zmiennej, dzięki temu będziesz wiedział czy kod "zachowuje się" prawidłowo. Sprawdź, co się dzieje gdy zapiszesz sobie tak, jak zrobiłeś za pierwszym razem, a co się zmieni, gdy przebudujesz kod - w sensie dlaczego przy pierwszym zapisie coś nie działa.

3 odpowiedzi

+1 głos
odpowiedź 16 maja 2016 przez Mateusz821 Bywalec (2,940 p.)
  • Tag body nie może mieć 2 onLoad
  • Dlaczego używasz onLoad a nie addEventListener?
0 głosów
odpowiedź 16 maja 2016 przez Orkoo7 Bywalec (2,670 p.)

Nie może być 2 funkcji w atrybucie onload, mozesz użyć też do tego jquery, tzn.

np. $(document).ready(function()

{

}

);

komentarz 16 maja 2016 przez Mateusz821 Bywalec (2,940 p.)

Albo skrócić ten zapis do:

$(function(){
//Code
});

 

0 głosów
odpowiedź 16 maja 2016 przez niezalogowany
mam jescze jedno pytanie bo teraz znow robilem zamiane zdjec talem do taga <img> onlcika i tam funkcje i ona sie wykonuje ale wewnatrz niej dalem document.getElementById("b").src="e.png";  i nic sie nie dzieje. Jak poprawnie/ profesjonalnie po 1 wywolywac funkcje po kliknieciu w jakis element i po 2 robic ta zamiane zdjec? bo tutaj raz dziala raz nie.
komentarz 16 maja 2016 przez ScriptyChris Mędrzec (190,190 p.)
Kod wstawiaj w odpowiednio do tego przeznaczone bloczki - zawsze, gdyż jest to czytelniejsze.

Do tej pory nie pokazałeś kodu HTML.

Podobne pytania

+1 głos
1 odpowiedź 436 wizyt
+1 głos
2 odpowiedzi 396 wizyt
pytanie zadane 12 czerwca 2021 w JavaScript przez Nearr Obywatel (1,890 p.)
0 głosów
1 odpowiedź 144 wizyt
pytanie zadane 8 stycznia 2018 w JavaScript przez urbix01 Gaduła (3,290 p.)

92,573 zapytań

141,423 odpowiedzi

319,648 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...