日期:2014-05-16 浏览次数:20514 次
<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>
<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>
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下就不会实现。