Hinzufügen/Ändern der Stil der Elemente in Code ist eine schlechte Praxis. Heute möchten Sie die Hintergrundfarbe ändern und morgen möchten Sie das Hintergrundbild ändern und nach morgen haben Sie entschieden, dass es auch schön wäre, die Grenze zu ändern.
Den Code jedes Mal bearbeiten, nur weil sich die Designanforderungen ändern, ist ein Schmerz. Auch wenn Ihr Projekt wächst, wird das Ändern von js-Dateien noch schmerzhafter. Mehr Code, mehr Schmerz.
Versuchen Sie, die Verwendung von hart codierten Stilen zu eliminieren, dies wird Ihnen Zeit sparen, und wenn Sie es schreiben, könnten Sie bitten, die "change-color" Aufgabe für jemand anderen zu tun.
Anstatt also direkte Eigenschaften des Stils zu ändern, können Sie CSS-Klassen auf Knoten hinzufügen/entfernen. In Ihrem speziellen Fall müssen Sie dies nur für den übergeordneten Knoten - "div" tun und dann die Unterknoten über CSS formatieren. Es ist also nicht notwendig, spezifische Stileigenschaften auf DIV und H2 anzuwenden.
Ein weiterer Empfehlungspunkt. Versuchen Sie nicht, fest codierte Knoten zu verbinden, sondern verwenden Sie dazu eine Semantik. Zum Beispiel: "Hinzufügen von Ereignissen zu allen Knoten, die den Inhalt der Klasse haben.
Als sommerliche ich hier den Code setzen, die ich für solche Aufgaben verwenden würde:
//for adding a css class
function onOver(node){
node.className = node.className + ' Hover';
}
//for removing a css class
function onOut(node){
node.className = node.className.replace('Hover','');
}
function connect(node,event,fnc){
if(node.addEventListener){
node.addEventListener(event.substring(2,event.length),function(){
fnc(node);
},false);
}else if(node.attachEvent){
node.attachEvent(event,function(){
fnc(node);
});
}
}
// run this one when window is loaded
var divs = document.getElementsByTagName("div");
for(var i=0,div;div =divs[i];i++){
if(div.className.match('content')){
connect(div,'onmouseover',onOver);
connect(div,'onmouseout',onOut);
}
}
Und Sie CSS wie folgt whould sein:
.content {
background-color: blue;
}
.content.Hover{
background-color: red;
}
.content.Hover h2{
background-color : yellow;
}
warum verweigern Tools wie Jquery, die die Arbeit leichter und das Ergebnis zuverlässiger zu machen? –
Während JQuery ein hervorragendes Werkzeug ist, was ist, wenn aus irgendeinem Grund Jquery nicht mehr existiert? IMO ist es toll wenn jemand die Sprache statt des Tools lernen möchte. :) – Prozaker
@Prozaker - Was ist, wenn eines Tages das Internet aufhörte zu existieren? Genau wie Sie die grundlegende Annahme machen, dass das Internet existiert, können Sie davon ausgehen, dass jQuery existiert. In der Tat müssen Sie nicht davon ausgehen. Sie können es einfach herunterladen und mit Ihrem Quellcode einbinden. Jetzt sind die Chancen, dass es verschwindet, mindestens so niedrig wie die Wahrscheinlichkeit, dass der Rest deines Codes verschwindet, außer nicht wirklich, weil es so viele Millionen Kopien von jQuery gibt, dass der Planet selbst explodieren müsste, um jQuery zuverlässig zu löschen Existenz. – ArtOfWarfare