Спасибо за подсказку, вот исправил:
document.onclick = function(evt)
{
evt = evt || window.event;
var el = evt.target || evt.srcElement;
if ((el.tagName.toLowerCase() == "th") && (el.parentNode.parentNode.parentNode.className == "tcolor"))
{
var elStyle = el.currentStyle || window.getComputedStyle(el, null);
with (elStyle) {
sValue = backgroundImage;
p1 = sValue.lastIndexOf('c-')+2;
p2 = sValue.lastIndexOf('.gif');
imgName = sValue.substr(p1, p2-p1);
switch (imgName)
{
case 'red': el.style.setProperty('background-image', sValue.replace('red','green'), ""); break;
case 'green': el.style.setProperty('background-image', sValue.replace('green','yellow'), ""); break;
case 'yellow': el.style.setProperty('background-image', sValue.replace('yellow','green'), ""); break;
}
}
}
}
Но теперь
не работает для IE, подскажите почему...
Сообщение от Octane
|
Верный способ, только событие onclick лучше начинать отлавливать на элементе <table>.
|
Не совсем понял, как это реализуется...
Есть ли возможность сделать так, чтобы при нажатии на очередной TH, стиль в "уже нажатой" (посещенном) ячейке изменялся на базовый, т.е. опять возвращался в url(c-red.gif);?