2016-07-20 5 views
0

Warum funktioniert $("demo").css("border", "1px solid #FFF"); nicht? Jeder andere Teil der Funktion funktioniert, aber nicht dieser. Die Klasse "demo" ist eine reguläre Version von "page1.html".Jquery alle Grenzen an Klassen ändern

<script> 
var button = 0; 
var activecolor = 0; 
function pressbutton(a){ 
button = a; 
var color1 = "#46B29D"; 
var color2 = "#F0CA4D"; 
var color3 = "#E37B40"; 
if (button === 1) { 
activecolor = color1; 
document.getElementById("button1").className = "activemenubutton"; 
document.getElementById("button2").className = "menubutton"; 
document.getElementById("button3").className = "menubutton"; 
} else if (button === 2){ 
activecolor = color2; 
document.getElementById("button1").className = "menubutton"; 
document.getElementById("button2").className = "activemenubutton"; 
document.getElementById("button3").className = "menubutton"; 
} else if (button === 3){ 
activecolor = color3; 
document.getElementById("button1").className = "menubutton"; 
document.getElementById("button2").className = "menubutton"; 
document.getElementById("button3").className = "activemenubutton"; 
} 

document.getElementById("textholder").style.borderTop = "1px solid " + activecolor; 
document.getElementById("textholder").style.borderBottom = "1px solid " + activecolor; 
document.getElementById("textholder").style.color= activecolor; 


$("#textholder").load("Page" + a + ".html"); 
$("demo").css("border", "1px solid #FFF"); 

} //end of function 

</script> 
+0

Ist "Demo" eine Klasse? Wenn ja, müssen Sie es mit '$ (". Demo ") angeben' –

+0

Ich habe gerade herausgefunden, dass das Skript von etwas anderem überschrieben wird. Ich kann sehen, dass es in ein paar Sekunden weiß wird, bevor es in eine andere Farbe geht. Was kann der Grund dafür sein? Es ist am Ende der Seite! – Carl

Antwort

1
$("demo") 

Treffer alle < Demo> -Tags, falls vorhanden sie, was ich tun sicher nicht. Sie vermissen

$(".demo") or $("#demo") 

, um Elemente mit der Klasse oder ID 'demo' zu treffen.

Darüber hinaus ist load() eine asynchrone Funktion, daher wird der css() - Aufruf normalerweise ausgelöst, bevor die Seite geladen wird. Daher werden Ihre Elementstile nicht geändert. Sie shold die load() und CSS() nennt diese Art und Weise ersetzen:

$("#placeholder").load("Page" + a + ".html" , function(){ 
    $(".demo").css('border' , '1px solid #FFF'); 

})

So können Sie die CSS assignement zwingen, zu warten, bis der Inhalt vom Server geladen wird.

+0

Nein, es hat nicht funktioniert. Grenze wird nicht weiß. – Carl

+0

macht es einen Unterschied, ich benutze load-Funktion, und die .demo ist in page1.html (die ich in meinem Index enthalten) – Carl

+0

Es hängt viel davon ab, ob Sie diese HTML-Server-Seite laden oder wenn Sie laden es ist dynamisch. Wenn Sie es nach diesem .css() - Aufruf dynamisch laden, funktioniert es nicht. – Sergeon

2

Sie verpassen einen Punkt. $(".demo").css("border", "1px solid #FFF");

+0

nein, es hat nicht funktioniert. – Carl

+0

Ich bekomme keine Fehler, aber die Grenze wird nicht weiß. – Carl