Autor Zpráva
Rossko
Profil *
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
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 *
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
Rossko:
kliknutím to nerobí, iba tými šípkami
Což tím spíš podporuje mou domněnku.

Nebyl by odkaz na živou ukázku?
Rossko
Profil *
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>

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