日期:2014-05-16  浏览次数:20318 次

关于javascript中event is not defined 错误的疑问?
这个就是表格移上去当前行高亮显示的效果。

效果可以实现,但是firebug老报错。
JScript code
<script>
var highlightcolor = '#c1ebff';
var clickcolor = '#51b2f6';
function changeto() {
    source = event.srcElement;
    if (source.tagName == "TR" || source.tagName == "TABLE")
        return;
    while (source.tagName != "TD")
        source = source.parentElement;
    source = source.parentElement;
    cs = source.children;
    //alert(cs.length);
    if (cs[1].style.backgroundColor != highlightcolor && source.id != "nc"
            && cs[1].style.backgroundColor != clickcolor)
        for (i = 0; i < cs.length; i++) {
            cs[i].style.backgroundColor = highlightcolor;
        }
}

function changeback() {
    if (event.fromElement.contains(event.toElement)
            || source.contains(event.toElement) || source.id == "nc")
        return
if  (event.toElement!=source&&cs[1].style.backgroundColor!=clickcolor)
//source.style.backgroundColor=originalcolor
for(i=0;i<cs.length;i++){
    cs[i].style.backgroundColor="";
}
}

function  clickto(){
source=event.srcElement;
if  (source.tagName=="TR"||source.tagName=="TABLE")
return;
while(source.tagName!="TD")
source=source.parentElement;
source=source.parentElement;
cs  =  source.children;
//alert(cs.length);
if  (cs[1].style.backgroundColor!=clickcolor&&source.id!="nc")
for(i=0;i<cs.length;i++){
    cs[i].style.backgroundColor=clickcolor;
}
else
for(i=0;i<cs.length;i++){
    cs[i].style.backgroundColor="";
}
}
</script>


------解决方案--------------------
event 在w3c 标准下,只有在触发事件的瞬间才有效!!

// 这样才兼容
document.onclick=function(e){e=e||event;};