Autor Zpráva
Fisak
Profil
Dobrý den. Rád bych v tomto kódu:
<div id='background-tips'></div>
<script>
      $('#content-game').hide();

      $("#background-tips").load("game/components/background-tips.php"); 
      
      setTimeout( function(){$('#background-tips').fadeTo("slow", 0.1, function() { $('#background-tips').hide(); $('#content-game').show(); });} , 5000);
                                                                                                                    
</script>
<div id="content-game">  
... obsah...
</div> 
chtěl bych aby se mi zobrazil nejdříve div "#background-tips" po pěti vteřinách se pomocí fadeTo efektu schová pozadí a načte se div '#content-game' ... bohužel toto mi nefunguje tak jak by mělo. Bohužel se vše načte najednou takže nejdříve vidím "content-game" pak po vteřině se načte "background-tips" a dále se po 5ti vteřinách schová. Nevěděl by někdo jak by to šlo upravit tak aby to fungovalo?
preca1
Profil
Nechceš příště dodat živou ukázku? Trvalo mi dýl než sem chtěl zjistit, co je špatně.
Na řádku 3 máš už asi postý tu samou chybu - div#content-game v okamžiku spuštění scriptu neexistuje. jQuery ale nevadí, že voláš metodu na něčem, co neexistuje, takže nevyhodí chybu a script pokračuje dál (ten element je ale pořád viditelnej).
Tam to neni o moc lepší. Voláš AJAX a pak doufáš, že se ti odpověď vráti dřív, než se něco stane s cílovým objektem. Kdyby se odpověď generovala dýl jak 5 sekund, tak tipy nikdy neuvidíš. Možná bys neměl použít metodu load, ale spíš ajax a tam použít atribut success a až do něj dát onu manipulaci s cílovým elementem.

Vypadá to, že ne úplně rozumíš JavaScriptu jako takovému a morduješ se tu s jQuery. Možná by nebylo na škodu nejdřív pochopit principy JS a až pak se pustit do něčeho těžšího.
Fisak
Profil
preca1:
Děkuji za rady. No právě se učím JS a jQuery.. A učím se to na živých příkladech.. Jinak výsledek je zde http://test.cherubis.cz/ nick: demo@demo.cz a heslo: 123456
Fisak
Profil
Ještě bych to rád udělal tak že by to skrytí a ten efekt šel udělat dřív ale pomocí např. Ctrl+Q
$(document).keydown(function(e){
     if (Keyboard.IsKeyDown(Key.Q) && Keyboard.IsKeyDown(Key.LeftCtrl)) { 
       $('#background-tips').fadeTo("slow", 0.1, function() { $('#background-tips').hide(); $('#content-game').show(); });
    }
});
Nevím proč mi to ale nefunguje :-/
preca1
Profil
V tom odkazu se mi nepodařilo najít podstránku, kde by byl kód z [#1].

Doporučuju používat nějakej vývojářskej nástroj, nebo aspoň chybovou konzoli JavaScriptu. Kód z [#4] vyhazuje chybu Keyboard is not defined. Nejspíš ti chybí nějaká knihovna.
Chamurappi
Profil
Reaguji na precu1:
Nejspíš ti chybí nějaká knihovna.
Tipnul bych to na .NET Framework :-) … dělat v JavaScriptu podobnou funkci by bylo docela krkolomné. Kdekdo si plete JavaScript s Javou, ale splést si ho s C#, to je novinka.


Reaguji na Fisaka:
ale pomocí např. Ctrl+Q
To budeš muset kontrolovat hodnoty v e.ctrlKey a e.keyCode.

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:

0