Autor Zpráva
Helsing
Profil *
Dobrý den, prosím zkuste někdo poradit, nemohu to dát dohromady.
Mám to v podstatě celé stažené a nějak jsem to naházel do stránky, ale bylo to původně na spuštění kliknutím a na onload mi to nefunguje. Je tam tedy někde chyba? Děkuji.

<head>
<style type="text/css">
		.toggler { width: 500px; height: 200px; position: relative;}
		#button { padding: .5em 1em; text-decoration: none; }
		#effect { width: 240px; height: 135px; padding: 0.4em; position: relative; }
		#effect h3 { margin: 0; padding: 0.4em; text-align: center; }
		.ui-effects-transfer { border: 2px dotted gray; } 
	</style>
</head>

<body onload="runEffect()">

<script type="text/javascript">
	$(function() {
		
		//run the currently selected effect
		function runEffect(){
			//get effect type from 
			var selectedEffect = drop;
			
			//most effect types need no options passed by default
			var options = {};


			//run the effect
			$("#effect").effect(drop,options,500,callback);
		};
		
		//callback function to bring a hidden box back
		function callback(){
			setTimeout(function(){
				$("#effect:hidden").removeAttr('style').hide().fadeIn();
			}, 1000);
		};
		
		//set effect from select menu value
		
			runEffect();
			return false;
		});
	});

	</script>



<div class="toggler">
	<div id="effect" class="ui-widget-content ui-corner-all">
		<h3 class="ui-widget-header ui-corner-all">Effect</h3>
		<p>
			Etiam libero neque, luctus a, eleifend nec, semper at, lorem. Sed pede. Nulla lorem metus, adipiscing ut, luctus sed, hendrerit vitae, mi.
		</p>
	</div>
</div>

Moderátor Chamurappi: Vkládej prosím kód mezi značky [pre] a [/pre] (stačí kliknout na ).
Helsing
Profil *
Prosím, nikdo nenašel chybu? :(
Chamurappi
Profil
Reaguji na Helsinga:
Tím, že svůj dotaz doplníš bezvýznamným vytahovacím příspěvkem, se vyhodíš ze seznamu vláken bez odpovědí, což sníží šanci, že ti někdo odpoví.
Chybu ti najde každý prohlížeč a zahlásí ji v konzoli. Přepočítej si závorky, zejména ty {chlupaté}.
Helsing
Profil *
Moc díky. :)
Helsing
Profil *
Tak bohužel, ani úprava závorek nenavdila ten správný efekt, text se ani nehne. :(
Chamurappi
Profil
Reaguji na Helsinga:
Co je v proměnné jménem „drop“?

<body onload="runEffect()">
To asi vyvolá výjimku, protože globální funkce runEffect neexistuje.
Helsing
Profil *
Původní script ze kterého jsem vypreparoval tento svůj kód vypadá takto:

<style type="text/css">
		.toggler { width: 500px; height: 200px; position: relative;}
		#button { padding: .5em 1em; text-decoration: none; }
		#effect { width: 240px; height: 135px; padding: 0.4em; position: relative; }
		#effect h3 { margin: 0; padding: 0.4em; text-align: center; }
		.ui-effects-transfer { border: 2px dotted gray; } 
	</style>
	<script type="text/javascript">
	$(function() {
		
		//run the currently selected effect
		function runEffect(){
			//get effect type from 
			var selectedEffect = $('#effectTypes').val();
			
			//most effect types need no options passed by default
			var options = {};
			//check if it's scale, transfer, or size - they need options explicitly set
			if(selectedEffect == 'scale'){ options = {percent: 0}; }
			else if(selectedEffect == 'transfer'){ options = { to: "#button", className: 'ui-effects-transfer' }; }
			else if(selectedEffect == 'size'){ options = { to: {width: 200,height: 60} }; }
			
			//run the effect
			$("#effect").effect(selectedEffect,options,500,callback);
		};
		
		//callback function to bring a hidden box back
		function callback(){
			setTimeout(function(){
				$("#effect:hidden").removeAttr('style').hide().fadeIn();
			}, 1000);
		};
		
		//set effect from select menu value
		$("#button").click(function() {
			runEffect();
			return false;
		});
	});
	</script>



<div class="demo">

<div class="toggler">
	<div id="effect" class="ui-widget-content ui-corner-all">
		<h3 class="ui-widget-header ui-corner-all">Effect</h3>
		<p>
			Etiam libero neque, luctus a, eleifend nec, semper at, lorem. Sed pede. Nulla lorem metus, adipiscing ut, luctus sed, hendrerit vitae, mi.
		</p>
	</div>
</div>

<select name="effects" id="effectTypes">
	<option value="blind">Blind</option>
	<option value="bounce">Bounce</option>
	<option value="clip">Clip</option>
	<option value="drop">Drop</option>
	<option value="explode">Explode</option>
	<option value="fold">Fold</option>
	<option value="highlight">Highlight</option>
	<option value="puff">Puff</option>
	<option value="pulsate">Pulsate</option>
	<option value="scale">Scale</option>
	<option value="shake">Shake</option>
	<option value="size">Size</option>
	<option value="slide">Slide</option>
	<option value="transfer">Transfer</option>
</select>

<a href="#" id="button" class="ui-state-default ui-corner-all">Run Effect</a>


</div><!-- End demo -->

<div style="display: none;" class="demo-description">

<p>Click the button above to show the effect.</p>

</div><!-- End demo-description -->


Volám teď tedy onload function() , to je snad už ok. Dop vůbec neměla být proměnná, snažil jsem se přiřadit rovnou "natvrdo" tuto vlastnost místo výběrového pole...
Chamurappi
Profil
Reaguji na Helsinga:
Drop vůbec neměla být proměnná, snažil jsem se přiřadit rovnou "natvrdo" tuto vlastnost místo výběrového pole...
Nevíš, že se řetězcové hodnoty píší do uvozovek? Viz JavaScript na JPW.

Volám teď tedy onload function() , to je snad už ok.
Tomu nerozumím. Skript máš napsaný tak, že onload vůbec nepotřebuje.
Helsing
Profil *
Jenže to platí pro ten původní, ne? ALe já nechci aby se to spouštělo po výběru a kliknutí, ale po příchodu na stránku to co vyberu já už předem. Proto jsem zkusil onload.
Chamurappi
Profil
Reaguji na Helsinga:
Původní skript říkal „po příchodu na stránku se nastaví, aby se při kliku na ‚#button‘ stalo to a to“. Ty jsi to změnil na „pro příchodu na stránku se stane to a to“. O odložení celé akce na vhodnou dobu se stará funkce $(), viz dokumentace frameworku, který používáš.
_es
Profil
Helsing
Chamurappi sa ti najskôr snažil naznačiť, že používaš vnorenú funkciu a tá nie je definovaná globálne, ale len v tej funkcii, v ktorej sa nachádza.
Ak má fungovať <body onload="runEffect()"> tak musí byť function runEffect(){...} nie vo vnútri definície inej funkcie alebo literálu funkcie, ale ako globálny príkaz v kóde. Alebo inak zabezpečené to, aby bola funkcia runEffect ako globálna vlastnosť.
Napríklad: window.runEffect=runEffect; a pod.
Helsing
Profil *
Já to nějak nemohu dát dohromady, pokud by to nebyl pro vás problém, mohl by mi tedy někdo prosím napsat jak to vložit do stránky fungční? Předem děkuji, pokud by se náhodou někdo našel.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: