Добавление/изменение стиля элементов в коде является плохой практикой. Сегодня вы хотите изменить цвет фона, а завтра вы хотите изменить фоновое изображение, и после завтрашнего дня вы решили, что было бы неплохо изменить границу.
Редактирование кода каждый раз только потому, что изменения требований к дизайну - это боль. Кроме того, если ваш проект будет расти, изменение js-файлов будет еще больнее. Больше кода, больше боли.
Попробуйте устранить использование жестко закодированных стилей, это сэкономит ваше время и, если вы это сделаете, вы можете попросить задание «изменить цвет» кому-то другому.
Таким образом, вместо изменения прямых свойств стиля вы можете добавлять/удалять классы CSS на узлах. В вашем конкретном случае вам нужно сделать это только для родительского узла - «div», а затем, стилей подузлов через CSS. Поэтому нет необходимости применять конкретное свойство стиля к DIV и H2.
Еще одна рекомендация пункт. Старайтесь не подключать узлы жестко запрограммированные, но используйте некоторые семантики для этого. Например: «Чтобы добавить события ко всем узлам, которые имеют класс« контент ».
В Summery я ставлю здесь код, который я хотел бы использовать для таких задач:
//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);
}
}
И CSS whould быть так:
.content {
background-color: blue;
}
.content.Hover{
background-color: red;
}
.content.Hover h2{
background-color : yellow;
}
почему отказываются инструменты, такие как JQuery, которые делают работу легче и результат более надежным? –
Хотя JQuery - отличный инструмент, что, если по какой-то причине jquery перестала существовать? ИМО здорово, если кто-то хочет выучить язык, а не инструмент. :) – Prozaker
@Prozaker - Что делать, если когда-нибудь интернет перестанет существовать? Подобно тому, как вы делаете основное предположение, что интернет существует, вы можете предположить, что существует jQuery. Фактически, вы не должны предполагать. Вы можете просто загрузить его и включить в свой исходный код. Теперь шансы на его исчезновение, по крайней мере, столь же низки, как и шансы остальной части вашего кода исчезнуть, за исключением на самом деле, потому что существует так много миллионов копий jQuery, что сама планета должна была бы взорваться, чтобы надежно стереть jQuery из существование. – ArtOfWarfare