Firefox出现event is not defined解决方法

自己写了一个div+checkbox的弹出式js.在之前一直在chrome中使用一切OK.

今天换Firefox后,弹出窗一直保持弹出状态不收回.consule中告诉我是event is not defined.

随便百度了一下,应该是Firefox中使用了不同的事件对象模型,区别于IE Dom,而是W3C Dom.

那么DOM中就不包含Event对象.自然调用就无法使用了.

网友分享的是加入

e = e || event;

或者

e = e || window.event;

但是修改之后依然报错 e is not defined.

后来查阅资料后解决,Firefox需要通过参数传递事件对象.所以给function加入参数event就好.代码如下:

$(document).bind('click', function(event){
	var targ;
	if (event.target) 
		targ = event.target
	else if (event.srcElement) 
		targ = event.srcElement
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
	if (targ.id !='column8' && !$(targ).parents('div.container8').attr('class'))
		$('div.container8').hide(100);
}
                                                                                                                    });