关于H5 Firefox火狐浏览器的“event is not defined”解决方案 记录一下

本文介绍了解决Firefox浏览器中事件对象模型与其他浏览器不兼容的问题。通过调整JavaScript代码,使用通用的方法来获取事件源,确保跨浏览器的兼容性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近项目过程中需要用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>

这样就可以正常运行了,

遇到两次这个问题 记录一下以防忘记~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值