jQuery-if/else-Anweisung in der CSS
Ich habe ein Interessantes problem, dass ich nicht verstehe. Es ist eine einfache jQuery-if -, else-Anweisung, aber es funktioniert nicht. Warum es nicht funktioniert?
Code:
$("#div").click(function(){
if ( $("#div2").css("background-image") === "url(img/image.png)") {
alert('OK');
}
else {
alert('NG');
}
});
Aber wenn ich .css("background-image") === "url(img/image.png)"
beispielsweise .css('position') === 'absolute'
es funktioniert.
- Was passiert, wenn Sie die Warnung (oder write - /log - /inspect)
$("#div2").css("background-image")
. - Kannst du einen Ausschnitt aus der html-Sie prüfen und vielleicht die entsprechende css?
- das ist seltsam, warum würde
.css('height') === 'absolute'
jemals funktionieren? - Wie wäre == anstelle von ===?
- oh, sorry its .css('position') === 'absolut' nicht .css('height') === 'absolute'.
- Ich habe versucht, = = anstelle von ===, aber nichts.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte es einen subtilen Unterschied in der value; alert den Wert in der else-Anweisung, um zu sehen, was Los ist. Zum Beispiel,
background-image
url bekommt einen voll qualifizierten Pfad. Fiddle: jsfiddle.net/TKUETMeine Vermutung wäre, dass, wenn die css geladen, es ist unter der url(img/image.png) und turing, dass in http://www.somehost.com/img/image.png. So .css("background-image") würde nicht mehr die gleiche "url(img/image.png)".
Statt Kontrolle
überprüfen
Nur Schießen in der Dunkelheit hier, aber "url(img/image.png") sollte wahrscheinlich haben Sie einfache Anführungszeichen um das argument zu url() da, das ist die Art und Weise der syntax gilt für das CSS.
"url('img/image.png')"
url("http://thesite.tld/path/to/image.png")
(siehe meine Geige oben)Scheint es, dass die richtige Antwort schreiben Sie den vollständigen Pfad zu dem Bild. Also, nutzen Sie
url(http://www.myhost.com/img/image.png)
statturl(img/image.png)
.