问题描述
|
这个问题已经在这里有了答案:
解决方法
您可以将具有自定义样式的css类(而不是显式设置背景色)添加到这些元素,然后按如下所示修改函数:
function getclick(elem)
{
//find any elemenet with given class
//remove that class from it
//add that class to \'elem\'
}
我不知道纯JavaScript的正确语法,但是使用jQuery,可能是:
// find any element with given class and remove it
$(\'.yourClass\').removeClass(\'yourClass\');
// add that class to clicked element
elem.addClass(\'yourClass\');
您可以在此处查看工作示例。
顺便说一句:您的榜样对我没有用。
,这是带有纯JavaScript的版本。它使用事件委托,这意味着仅一个单击处理程序分配给表,而不分配给每个单元格:
(function() {
var current,table = document.getElementById(\'table\'); // I gave the table
// the uncreative ID `table`
table.onclick = function(event) {
event = event || window.event;
var target = event.target || event.srcElement;
if(target.nodeName !== \'TD\') {
do {
target = target.parentNode;
} while(target && target.nodeName !== \'TD\');
}
if(target) {
if(current) {
current.style.backgroundColor = \'\';
}
target.style.backgroundColor = \'#EFF2F7\';
current = target;
}
};
}());
演示