Autor | Zpráva | ||
---|---|---|---|
Rossko Profil * |
#1 · Zasláno: 17. 12. 2012, 21:17:07
Dobrý deň.
Nastala u mňa taká chyba. V súbore, ktorý sa načítava ajaxom mám načítavanie obrázku a tam kliknutím sa mi spustí funkcia, ktorá načíta Ďalší obrázok.. jej vstupným parametrom je ID nasledujúceho obrázku. Pri kliknutí je všetko v poriadku, ale robil som funkciu, ktorá pri stlačení šípky vyvolá tú istú funkciu a tá sa mi nejakým spôsobom zacyklí. Skúšal som tam dať alert, pri prvom stlačení mi vyskočí iba raz (2^0), pri druhom 2x (2^1), pri treťom 4x (2^2), pri štvrtom 8x (2^3) atď. nechápem, kde je problém, pravdepodobne v tomto: ?> <script type="text/javascript"> <!-- $(document).keydown(function(e) { if (e.keyCode == 37) {//left openedBigImg('<?php echo IMAGES."zabava/".$linkpred['link'];?>', '<?php echo $odkazy['pred']['id'];?>', '<?php echo $jekat;?>'); } }); --> </script> <?php toto mám priamo vložené v tom súbore, ktorý sa načítava ajaxom a nie je možné to dať do externého javascript súboru, pretože nemám ako zistiť tie parametre toho, tie sa dajú zistiť len v tomto súbore.. skúšal som pridať return false, všetko možné, jednoducho nič.. ten click mám urobený iba img onclick= a tá funckia, to funguje, načíta jeden obrázok a koniec, ale toto jednoducho načítava 2^početkliknutí krát asi je problém v tom document.keydown alebo neviem, viete mi niekto poradiť? |
||
Joker Profil |
#2 · Zasláno: 18. 12. 2012, 06:51:03
Rossko:
Uvedený kód funguje správně, přesto si tipnu příčinu: Ten skript napojující funkci na událost se bude volat opakovaně, nejspíš při každém zpracování té šipky. A protože se napojuje přes jQuery, které novou funkci přidá k už existujícím, dopadne to takhle: Funkce je napojená. Při prvním vyvolání se provede a napojí další. Při druhém vyvolání se provede ta původní a napojí další a ta napojená při prvním vyvolání a napojí další. Při třetím vyvolání se provede ta původní, ta napojená při prvním vyvolání a dvě napojené při druhém vyvolání a každá z nich napojí novou. A tak dále. |
||
Rossko Profil * |
#3 · Zasláno: 18. 12. 2012, 10:49:34
vypadá to tak, lenže kliknutím to nerobí, iba tými šípkami a to preto, že tie šípky sú v tom súbore a na kliknutie sa to načítava z javascript.js
|
||
Joker Profil |
#4 · Zasláno: 18. 12. 2012, 11:01:10
Rossko:
„kliknutím to nerobí, iba tými šípkami“ Což tím spíš podporuje mou domněnku. Nebyl by odkaz na živou ukázku? |
||
Časová prodleva: 5 dní
|
|||
Rossko Profil * |
#5 · Zasláno: 23. 12. 2012, 01:20:57
http://www.bamplace2.podporsvojbiznis.com/sz/?stranka=obrazky stačí kliknúť na foto
|
||
SeparateSK Profil |
Oplatilo by sa vytvoriť nejaké pole v javascripte, kde by boli tie odkazy a počítať koľkokrát bolo čo stlačené
<script> var fotky=new Array(); fotky[0]="http://..."; fotky[1]="http://..."; fotky[2]="http://..."; //na tejto fotke prave sme, lebo idx=2 fotky[3]="http://..."; var idx=2;//poradie fotky na ktorej sme v poli $(document).keydown(function(e) { if (e.keyCode == 37) {//left idx--; (idx<0)?idx=0:idx=idx; (idx>=fotky.length)?idx=fotky.length-1:idx=idx; openedBigImg(fotky[idx], ''+idx+'' /*skonvertovane na string*/, 0/*tu neviem co ma byt*/); } } </script> |
||
Časová prodleva: 11 let
|
0