JS中e的使用
- JScript code
<script> window.onload = function() { var a = document.getElementById("test"); a.onclick = function(e) { alert("跳不了"); stopDefault(e); } } function stopDefault( e ) { if ( e && e.preventDefault ) e.preventDefault(); else { window.event.returnValue = false; } return false; } </script><a href="www.baidu.com" id="test">点我</a>
- JScript code
<script> function stopDefault( e ) { if ( e && e.preventDefault ) e.preventDefault(); else { window.event.returnValue = false; } return false; } function test(e) { alert("跳不了"); stopDefault(e); }</script><a href="www.baidu.com" id="test" onclick="test(e)">点我</a>
第一段代码可以成功阻止a标签的默认事件,但第二段代码就报undefined e的错误,为什么啊?
[解决办法]
要写成
<a href="www.baidu.com" id="test" onclick="test(event);">点我</a>
[解决办法]
你的test这样定义
- JScript code
function test(){ alert(arguments.callee.caller);}
[解决办法]
装个firebug就什么都看得出来了,e只是一个常用的表示事件的形参,就像循环里面喜欢用i
[解决办法]
<a href="www.baidu.com" id="test" onclick="test(e)">点我</a>
在标准的事件模型中,argument[0]即你用的这个"e"会被当作事件数据载体,会没有问题,但IE的实现很特殊,传入"e"与传入"event"是有很大区别的,"e"未在其他位置声明过便等于传入一个undefined,传"event"等于引用window.event对象,于是IE下就不会实现。