» Poradna » Ostatní

JavaScript, prohození obrázků

 |   |  Microsoft Windows 10 Firefox 60.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?

Mohlo by vás také zajímat

Odpovědi na otázku

 | Microsoft Windows 10 Firefox 61.0

Záleží na událostech. To jak jsi to napsal znamená, že v tom máš trochu hokej.Nejzřetelněji se to dá zapsat ve funkci.Já ale použiji ternální operátor:onclick = "window.document.kriz.src == 'kriz.png' ? 'fajfka1.png' : 'kriz.png' "Tato konstrukce přístupu k SRC je ale nevhodná.Nechce se mi nic zkoušet, ale nejsem si jistý jestli to vůbec funguje mimo IE či Edge.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Android Chrome 67.0

Nebylo by nějaké jednodušší řešení? Ani nevim, co je to ternální operátor.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Firefox 61.0

Tak tam plcni někam nahoru tento kód:<script>function zamenaObrazku(){var firstImage = document.getElementsByTagName("img")[0].src;if (firstImage == 'fajfka1.png')firstImage = 'kriz.png';elsefirstImage == 'fajfka1.png';}</script>A k tomu obrazku pak jen zadas: "onClick = zamenaObrazku()"

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Android Chrome 67.0

Nad možností s if () jsem taky uvažoval, jenže v praxi jsem to celé napsal špatně, každopádně děkuji za odpověď.

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Head