Problém s prohozením obrázků – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Problém s prohozením obrázků – JavaScript, AJAX, jQuery – Fórum – Programujte.comProblém s prohozením obrázků – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

PC
~ Anonymní uživatel
2 příspěvky
9. 7. 2018   #1
-
0
-

Dobrý den. začínám v JavaScriptu a v knize mám tento příklad (sám jsem ho poupravil) :

<!DOCTYPE html>

<html>
    <head>
        <title></title>
        <script type = "text/javascript">
            var some_image = new Image();
            some_image = "fajfka1.png";
        </script>
    </head>
    <body>
    </body>
    <img src = "kriz.png" name = "kriz"
         onMouseOver = "window.document.kriz.src = 'fajfka1.png';"
         onMouseOut  = "window.document.kriz.src = 'kriz.png';">
</html>

,ale když tam místo onMouseOver a onMouseOut dám onClick na obě možnosti, změna se provede jen u jednoho, čím to je?

Nahlásit jako SPAM
IP: 188.134.166.–
gna
~ Anonymní uživatel
1849 příspěvků
10. 7. 2018   #2
-
0
-

Jestli myslíš toto

<... onClick="aaa"
     onClick="bbb" />

a čekáš, že to prvně udělá "aaa" a příště "bbb", tak takhle to nefunguje. Prostě tomu atributu nastavuješ nějakou hodnotu -- jednu. I když to uděláš víckrát, tak bude jen jedna. Nevím jestli je nějak definováno která, ale vypadá to, že ta první. Tu požadovanou funkcionalitu si musíš pořešit sám.

function changeImage(img) {
    if (img.src.endsWith("aa.jpg"))
        img.src = "bb.jpg";
    else
        img.src = "aa.jpg";
}
<img src="aa.jpg" onclick="changeImage(this)" />
Nahlásit jako SPAM
IP: 213.211.51.–
PC
~ Anonymní uživatel
2 příspěvky
11. 7. 2018   #3
-
0
-

#2 gna
Otázky:
Proč je tam to img v parametrech funkce?
Proč tam musí být changeImage(this)?

Nahlásit jako SPAM
IP: 188.134.166.–
MilanL+1
Grafoman
12. 7. 2018   #4
-
0
-

#3 PC
ty asi nemáš moc zkušeností s programováním co?

<img src="aa.jpg" onclick="changeImage(this)" />

Při stisku tlačítka zavolá funkci changeImage parametr this odkazuje na vlastní "objekt" (prvek/tag)  tzn na <img .../>, ve funkci je parametr použit k tomu, aby se získal název pro podmínku, na který obrázek se to má změnit.

THIS je u objektů obvykle odkaz na sebe, v jiných jazycích se můžeš setkat s variantou SELF.

img jako argument funkce je proměnná pro tu funkci do které se v daném příkladu promítne odkaz THIS, pro přístup k metodám/vlastnostem/atributům objektu.

Nahlásit jako SPAM
IP: 91.139.9.–
peter
~ Anonymní uživatel
3981 příspěvků
13. 7. 2018   #5
-
0
-

Viz MilanL
<img src="aa.jpg" onclick="changeImage(this)" > - tady je IMG jako tag, do funkce predavas objekt tohoto tagu pres 'this'
<span onclick="changeImage(this)"></span> - do funkce predavas SPAN tez pomoci this
<span><span onclick="changeImage(this.parentNode)" /></span> - do funkce predavas SPAN nad aktualnim objektem, cili ten prvni
 

function changeImage(img) { - tady je img tebou pojmenovana promena
function changeImage(rakosnicek) {
if (rakosnicek.src.endsWith("aa.jpg"))
rakosnicek.src = "bb.jpg";
else rakosnicek.src = "aa.jpg"; }

To bude delat porad totez. Ale lepsi je si promenou pojmenovat tak, aby odpovidala obsahu, ktery prenasi. cili zvolil img. Jeste by bylo pouzitelne el, elem, tag, el_img, obj a podobne. Ale img je asi pro tebe srozumitelnejsi.

<span><span onclick="changeImage(this)" /></span>  <!-- kdyz misto this.parentNode pouziji jen this... -->
function changeImage(rakosnicek) {
span = rakosnicek.parentNode // na ten nadrazeny span muzu dostat uvnitr funkce
 

Nahlásit jako SPAM
IP: 90.176.141.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 18 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý