2017-01-31 1 views
2

ändern Ich habe einen codepen bei http://codepen.io/templenaylor/pen/ggoMPZ?editors=0011Kann nicht Text auf Onclick

ich zur Zeit der Anzeige eine Temperatur, die einen var verweist:

<ul> 
    <li id="fTemp"></li> 
</ul> 

Beim Versuch, es durch Anklicken zu ändern, wird es nicht funktionieren . Dies ist die Funktion, die ich tun bin mit, dass:

$("#fTemp").click(function(){ 
    if(tempSwap===false){ 
     $("#fTemp").html(fTemp + " &#8457;"); 
     tempSwap=true; 
    } else{ 
     $("fTemp").html(cTemp + " &#8451;"); 
     tempSwap=false; 
    } 
    }); 

Gibt es etwas, das ich nicht in meiner Funktion bin zu sehen, die falsch sind?

+1

'$ ("FTemp")' sollte '$ ("# FTemp")' –

+0

Sehr guter Fang @MichaelCoker sein. Eine Sache, die ich empfehle, ist, dass Sie die Schaltfläche in einer Variablen zwischenspeichern, so dass Sie sie nicht viele Male schreiben müssen und sie erneut falsch schreiben müssen. 'var tempText = $ (" # fTemp ");' now 'tempTxt' verwenden – Ibu

+0

Dein Codepen funktioniert nicht, da der AJAX-Aufruf nicht funktioniert, aber ich habe dies gemacht. http://codepen.io/mcoker/pen/EZoJgp Sie müssen nur tempSwap als wahr oder falsch vor Ihrer bedingten definieren und ändern Sie die '$ ('# fTemp')' Selektor Ich kommentiert mit zuvor –

Antwort

4

Wie von @MichaelCoker angegeben, fehlt die in Ihrem else-Zweig.

Zusätzlich zu diesem Problem, ich würde das Element in einer Variablen speichern, um Fehler in der Zukunft zu verhindern.

var ftemp_li = $("#fTemp"); 

ftemp_li.click(function(){ 
    if(tempSwap == false){ 
    ftemp_li.html(fTemp + " &#8457;"); 
    tempSwap = true; 
    } else { 
    ftemp_li.html(cTemp + " &#8451;"); 
    tempSwap = false; 
    } 
}); 

http://codepen.io/anon/pen/VPyNPO?editors=0011

+0

Awesome, danke. Ich half mit etwas, das offensichtlich war, dass meine Augen nicht sahen und gab mir später eine Vorbeugung gegen einen möglichen Fehler. Vielen Dank! – YoungCoder

3

Sie verweisen nicht die richtigen Wähler in Ihrem else Block

} else{ 
     $("fTemp").html(

sollte

} else{ 
     $("#fTemp").html(

auch Sie sein scheinst, die Bindung das Click-Ereignisses jedes Mal Ihres Ajax erfolgreich .

Verschieben Sie es aus dem Rückruf und binden Sie Ihr Click-Ereignis im DOM-ready-Handler.

Verwandte Themen