猿问

为什么函数不传event参数也能实现事件对象的方法?

function showMessage(){

    alert(event.target.nodeName);

    //event.stopPropagation();

    //event.preventDefault();

}

function showMessage(event){

    alert(event.target.nodeName);

    //event.stopPropagation();

    //event.preventDefault();

}

eventUtil.addHandler(btn3,'click',showMessage);

1这两个函数有什么区别么 

2为什么能都能实现一样的效果

3而在调用的时候却没有传参数

LioHD
浏览 1595回答 1
1回答

woshiajuana

这个是看浏览器的事件event他在某些浏览器是window的属性也就是说window.event就可以直接获取,目前工作中,我在谷歌浏览器中不使用event传参数也是直接能用的,但是放到火狐上就会报错所以这就造成了你遇见的这种情况一般事件event是要做浏览器兼容的,如果你不用jquery的话一般都是function showMessage(event){    var event = event || window.event; //这句话的意思是,如果参数event不为undefined就直接使用参数event,不然//就使用window.event}
随时随地看视频慕课网APP
我要回答