e is undefined,该如何解决

e is undefined
本帖最后由 wangxiaoyu_net 于 2014-11-01 18:45:23 编辑
各路大神,如题所示,初学javascript,选择的教程是《JavaScript入门经典(第4版)(修订版)》,Michael Moncur著,王军译,人民邮电出版社出版。书中有一段代码,怎么也抄不明白,请教大神。

function mousestatus(e)
{
if (!e) e = window.event;
var btn = e.button; //在这个地方,firefox总是提示 e is undefined.
var whichone = (btn<2) ? "Left" : "Right";
var message = e.type + " : " + whichone + "\n";
document.form1.info.value += message;
}
var obj = document.getElementById("testlink");
obj.onmousedown = mousestatus();
obj.onmouseup = mousestatus();
obj.onclick = mousestatus();
obj.ondblclick = mousestatus();

在firefox中调试时,总是提示e is undefined,不知道何故。
对应的html代码是:

<body>
<h2>Mouse Click Test</h2>
<h3><a href = "#" id = "testlink">Test Link</a></h3>
<form id="form1">
<textarea rows="10" cols="70" name="info"></textarea>
</form>
<script Language = "JavaScript" Type = "text/javascript">
</script>
</body>

------解决思路----------------------
设置事件时不要加()
obj.onmousedown = mousestatus;
obj.onmouseup = mousestatus;
obj.onclick = mousestatus;
obj.ondblclick = mousestatus;

------解决思路----------------------
额  你要搞明白调用和引用的差别
------解决思路----------------------
你确认你抄对了?

看1楼的