这个javascript语句出了什么问题?

ste*_*nvh -1 javascript events

对于因为之前被问过而被投票的好人:我的问题不是隐含的事件参数.我不知道.事件参数是答案,而不是问题.


function myEventHandler() {
  var eventSrcType=(event.srcElement) ? event.srcElement.type : 'type undefined';
  alert(eventSrcType);
}
Run Code Online (Sandbox Code Playgroud)

当用户点击图像("onclick")时,例如,调用该函数

<a href="javascript:void(0)" onclick="myEventHandler();">

显然分配有问题,因为alert它永远不会被执行.这有什么不对?

(我试过了window.event,但是Dreamweaver没有暗示它event是一个成员window.无论如何,它也不起作用)

编辑
所有答案暗示隐式传递event.所以我添加了作为函数的参数(不带参数调用),

function myEventHandler(event) {
  var eventSrcType=(event.srcElement) ? event.srcElement.type : 'type undefined';
  alert(eventSrcType);
}
Run Code Online (Sandbox Code Playgroud)

但我仍然没有得到警报.

this作为参数传递显示"type undefined",但我希望这里的锚类型.

Mir*_*vic 6

event在函数中缺少参数,因此您可能有一个空引用异常.

function myEventHandler(event) {
  var eventSrcType=(event.srcElement) ? event.srcElement.type : 'type undefined';
  alert(eventSrcType);
}
Run Code Online (Sandbox Code Playgroud)

  • @stevenh你没有通过任何东西.每个事件处理程序都会自动将事件对象作为其第一个参数.您的代码失败并显示错误,因为`event`未定义,因此它不能具有`srcElement`属性 - 或任何其他属性.请学习检查您的浏览器控制台,您会看到错误. (3认同)