Ich arbeite an der Erstellung einer Toggle-Funktion zu "Favorit" ein Element aus einer Liste von vielen. Ich habe ein funktionierendes Skript, um das Element in eine benutzerspezifische Favoritenliste ein- und auszublenden, diese Änderung an eine Datenbank zu übermitteln und den Rest der Website entsprechend aufzufüllen. Das alles funktioniert gut, es ist hauptsächlich PHP und Ajax. Allerdings ist mein Javascript ass. Ich bin auf einer Bedingung fest, um das Symbol von einem gefüllten Herzen zu einem leeren zu ändern. Aus irgendeinem Grund erreicht es nie die else-Anweisung, selbst wenn die if-Anweisung falsch ist. Wenn ich die Bedingungen umkehre, handhabt es immer noch, wenn es gut ist, aber nie das andere.javascript conditional nicht erreichen sonst
das Bild:
<img src="includes/icons/fave-<?php echo $favStatus; ?>.png" id="faveToggle" class="faveIcon" onClick="toggleFave()">
die bedingte, in toggleFave() ist:
if(document.getElementById('faveToggle').src.toString().indexOf("fave-false.png")){
document.getElementById('faveToggle').src = "includes/icons/fave-true.png";
} else {
document.getElementById('faveToggle').src = "includes/icons/fave-false.png";
}
Also, uhh, whuddo ich tun?
'.indexOf' gibt eine Zahl, nicht' wahr '/' false' zurück. – Pointy
Und zu @Pointy hinzufügen 'Boolean (-1)' ist wahr, nicht falsch. – gurvinder372