javascript - Firefox 上的事件对象

标签 javascript jquery events firefox object

抱歉,这似乎很讨人喜欢……这应该就是为什么 firefox 没有像 Chrome 一样更改其代码以完全符合 Event 对象的原因。我已经完成了作业,尝试了 StackOverflow 上提供的几种解决方案,但似乎没有任何效果。我有这段代码:

function xpto(e) {
if( !e ) e = window.event;
  var x = e.target||e.srcElement;
alert(x);
    ........
}

调用如下:

<svg id="graph-svg" onclick="xpto(event)" style="outline: none;" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">

是的...这是我试图点击的 svg 元素。我没有放完整的代码,因为它与问题无关。归根结底,

alert(x)

总是在 Firefox 上用 undefined 提醒,在 Chrome 上工作就像一个魅力。我可以在 Firefox 上获取事件,但“x”总是未定义。

Firefox 中的 DOM 描述支持 Event 和 SVG。为了向后兼容,甚至使用“target”和“srcElement”属性定义事件。

我在 Ubuntu 上使用 Firefox 20...有人可以帮忙吗?

最佳答案

在收到 d'alar'cop 的回复后,我查看了代码,发现在 firefox 中有效的参数不是“event”或“Event”,而是“evt”……Firebug 中的控制台显示如下:

    function onclick(evt) { xpto(event) }

因此我意识到处理程序是用“事件”而不是原始参数“evt”调用的。然后,当它落入处理程序时,“事件”变为“空”……未定义。

关于javascript - Firefox 上的事件对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15857214/

相关文章:

javascript - 如何将附加变量传递给 .addEventListener 中的监听器

c# - 了解 PropertyChanged 机制的工作原理(工作流程)

java - HtmlUnitDriver 中预期的内容类型为 'application/javascript'

javascript - 从 Steam api 获取正面和负面评论

javascript - jquery .attr和.prop删除Chrome中的属性

javascript - 在html和jquery中隐藏一列

c - Linux 信号带有额外的信息参数

javascript - Passportjs 类型错误 : undefined is not a function

javascript - mootools 比 jquery 有什么优势?

jquery - $(...).flexslider 不是函数错误