Dodawanie/zmiana stylu elementów w kodzie jest złą praktyką. Dziś chcesz zmienić kolor tła, a jutro chcesz zmienić tło, a jutro zdecydowałeś, że fajnie byłoby zmienić granicę.
Edycja kodu za każdym razem tylko dlatego, że zmieniają się wymagania projektowe to ból. Ponadto, jeśli Twój projekt będzie rósł, zmiany plików js będą jeszcze bardziej bolesne. Więcej kodu, więcej bólu.
Postaraj się wyeliminować użycie zakodowanych stylów, dzięki czemu zaoszczędzisz czas, a jeśli to zrobisz, możesz poprosić kogoś o wykonanie zadania "zmień kolor".
Zamiast więc zmieniać bezpośrednie właściwości stylu, można dodawać/usuwać klasy CSS na węzłach. W twoim konkretnym przypadku wystarczy zrobić to dla węzła nadrzędnego - "div", a następnie nadać podwęzłom styl przez CSS. Nie ma więc potrzeby stosowania określonej właściwości stylu do DIV i H2.
Jeszcze jeden punkt rekomendacji. Staraj się nie łączyć z węzłami na stałe, ale użyj do tego semantycznego. Na przykład: "Aby dodać zdarzenia do wszystkich węzłów, które mają" zawartość "klasy.
Jako Summery kładę tutaj kod, który będzie używać do takich zadań:
//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);
}
}
I CSS whould być tak:
.content {
background-color: blue;
}
.content.Hover{
background-color: red;
}
.content.Hover h2{
background-color : yellow;
}
dlaczego odmówić narzędzi, takich jak jQuery, które sprawiają, że praca jest łatwiejsza i bardziej niezawodny wynik? –
Podczas gdy JQuery jest doskonałym narzędziem, co jeśli z jakiegoś powodu jquery przestanie istnieć? IMO to świetnie, jeśli ktoś chce nauczyć się języka zamiast narzędzia. :) – Prozaker
@Prozaker - Co jeśli pewnego dnia internet przestanie istnieć? Podobnie jak w przypadku podstawowego założenia, że istnieje Internet, można założyć, że jQuery istnieje. W rzeczywistości nie musisz zakładać. Możesz go po prostu pobrać i dołączyć do kodu źródłowego. Teraz szanse na zniknięcie są co najmniej tak niskie, jak szanse na zniknięcie reszty kodu, ale nie tak naprawdę, ponieważ istnieje tak wiele milionów kopii jQuery, że sama planeta musiałaby eksplodować, aby niezawodnie usunąć jQuery z istnienie. – ArtOfWarfare