delay с jquery не работи

anonimen

Super Moderator
Здравейте оптивам се да направя нещо такова, но което да работи:

[js]$("#mart").html("първи").delay(1000).html("втори").delay(1000).html("трети").delay(1000).html("четвърти").delay(1000).html("пети").delay(1000).html("шести").delay(1000).html("седми").delay(1000).html("осми"); [/js]
HTML:
Честит <div id="mart"></div> март!
(трябва през 1 сек да се сменя)
И изобщо не мога да разбера защо не става, при положение че тук кодът е написан по същия начин, а аз съвсем малко съм го попроменил...
 
Най-добрата практика е да сложиш твоя jquery код във:
Код:
$(document).ready(function() {
//tuk
});
За да избегнеш javascript да бъде след дива.
Или просто казано когато браузърът чете кода вижда jquery-то но дивът го няма все още и се объркват нещата,а кодът който дадох ще уведоми браузърът,че първо трявба да зареди целия документ и тогава да изпълни скрипта :)
 
hous, сложил съм го $(document)... , и го слагам винаги. Пробвах като eddyy93, но пак не работи. Ето пълният код(дирекно копиран от хтмл файла):

HTML:
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<style>
			#mart { display: inline}
		</style>
	</head>
	<body>
		Честит <div id="mart"></div> март!
		<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
		<script>
		$(document).ready(function(){
			$("#mart").html("първи").delay(1000).html("втори").delay(1000).html("трети").delay(1000).html("четвърти").delay(1000).html("пети").delay(1000).html("шести").delay(1000).html("седми").delay(1000).html("осми");		
		});
		</script>
	</body>
</html>
 
Защо не смениш логиката и не направиш функция която да се вика на определено време и да поставя думите.
 
shterev каза:
Защо не смениш логиката и не направиш функция която да се вика на определено време и да поставя думите.

Направих го така: (и не работи)[js]<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#mart").html("първи");
var mart = Array("първи","втори","трети","четвърти","пети","шести","седми","осми");
var number = 0;
function mart(){
number++;
if(number<=7){
$("#mart").html(mart[number]);
setTimeout(mart(), 200);
}
}
});
</script>
</head>
<body onload="setTimeout(mart(),200);">[/js]
 
HTML:
<!DOCTYPE html>
<html lang="bg">
<head>
	<meta charset="utf-8">
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body >
	Честит <div id="mart"></div> март!


	<script>

		$("#mart").html("първи");
		var arr = new Array("първи","втори","трети","четвърти","пети","шести","седми","осми");
		var num	= 0;
		
		setInterval(function(){
			$("#mart").html(arr[num++]);
			if( num == 8){
				num=0;
			}
				
		}, 2000);

		
	</script>
</body>
</html>
 
Мерси много, но понеже става гадно да се сменят думите (непрекъснато ширината на реда се променя) и аз малко го промених - сменят се числата, а накрая се изписва "осми". Благодаря още веднъж, преди да ти видя поста не се надявах, че ще стане :)
 
anonimen каза:
Мерси много, но понеже става гадно да се сменят думите (непрекъснато ширината на реда се променя) и аз малко го промених - сменят се числата, а накрая се изписва "осми". Благодаря още веднъж, преди да ти видя поста не се надявах, че ще стане :)

Ами сменяй направо цялото изречение
 

Back
Горе