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