第一种情况
一个页面中。有这样的html
<a href="#" id="divid" >点击</a>
在Js里面用
document.getElementById("divid").onclick = function(e){
var e = e || event;
alert(typeof(e));
}
能得到e为对象在ff和ie是正常的
我理解是。function (e)这里e是自带的参数,系统默认,为对象第二种情况
<a href="#" id="divid" onclick="fun()">点击</a>
在Js里面
function fun(){
var e = event || e ;
alert(typeof(e));
}在ie里面是正常的。但是在ff里面不正常的。这个是为什么呢?我就是想要实现。第二种方法中。得到事件对象e要如何实现?还有就是第一种情况的function(e)这里的参数的理论理解是怎么样的?
一个页面中。有这样的html
<a href="#" id="divid" >点击</a>
在Js里面用
document.getElementById("divid").onclick = function(e){
var e = e || event;
alert(typeof(e));
}
能得到e为对象在ff和ie是正常的
我理解是。function (e)这里e是自带的参数,系统默认,为对象第二种情况
<a href="#" id="divid" onclick="fun()">点击</a>
在Js里面
function fun(){
var e = event || e ;
alert(typeof(e));
}在ie里面是正常的。但是在ff里面不正常的。这个是为什么呢?我就是想要实现。第二种方法中。得到事件对象e要如何实现?还有就是第一种情况的function(e)这里的参数的理论理解是怎么样的?
<a href="#" id="divid" onclick="fun(//在火狐下必须写参数,而且必须是event)">点击</a>//是不能和第一种情况一样写e的
var e = event || e ;
alert(typeof(e));如果想获取事件对象,可以用下面的方法:function getEvent() {
var evt = arguments[0] || window.event;
if(!evt && !window.ActiveXObject) {
var c = getEvent.caller, count = 1;
while (c)
{
evt = c.arguments[0];
if ( evt && Event == evt.constructor)
{
break;
} else if(count > 32) {
break;
} c = c.caller;
count++;
}
} return evt;
}
找到调用getEvent的函数,然后获取其第一个参数,为了避免陷入死循环,用了count计数。
<a href="#" id="divid" onclick="fun(//在火狐下必须写参数,而且必须是event)">点击</a>//是不能和第一种情况一样写e的
第二种情况
<a href="#" id="divid" onclick="fun()">点击</a>
在Js里面
function fun(){
var e = event || window.event;//这样就行了,最好在onclick="fun(event)" function fun(e) 传递个参数更好
alert(typeof(e));
}
要理解浏览器真的工作原理。
如果一直用jquery,不了解基本工作原理。没用
如果是做开发,就别浪费这是时间了,有空钻研这个,不如去钻研点别的