最近项目过程中需要用JS获取事件源 event.target
但是Firefox并不认得event.target,报“event is not defined”的错误,
多次尝试更改,均无法解决,上网搜索了一下,
发现原因是因为在Firefox中使用了不同的事件对象模型,
不同于Google Chrome Dom,用的是W3C Dom。
Firefox DOM中并无event,
故可以尝试用如下方法解决:
在函数中增加一个参数e,
function selStar(star,e){
var theEvent = window.event|| e;
var starp=star.querySelectorAll('li:nth-of-type(odd)');
var starb=star.querySelectorAll('li:nth-of-type(even)');
var that=theEvent.target;
var clickCount;
var count; //--------------用户选择的星星数量
if (that.nodeName=='IMG'){
clickCount=that.className.toString();
count=clickCount.charAt(clickCount.length-1);
for(var i=0;i<count;i++){
starb[i].style.display='inline';
starp[i].style.display='none';
}
for(var j=count;i<5;i++){
starb[i].style.display='none';
starp[i].style.display='inline';
}
}
}
HTML代码如下:
<ul onclick="selStar(this,event)">
......
</ul>
这样就可以正常运行了,
遇到两次这个问题 记录一下以防忘记~