ReferenceError:在Firefox中未定义事件

时间:2013-09-15 09:31:11

标签: javascript jquery firefox

我正在使用此功能:

$("#tooltip").animate({ left: event.clientX, top: event.clientY });

它在Chrome和IE上工作,但在Firefox中我收到此错误:

ReferenceError: event is not defined $("#tooltip").animate({ left:
event.clientX, top: event.clientY });

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:6)

您似乎正在尝试使用奇怪的全局事件对象,这是4.0浏览器时代Microsoft事件模型的遗留问题。别。请改用标准事件对象。它将是您的事件处理函数的第一个参数。

jQuery('selector').on('click', function (evt) {
    jQuery("#tooltip").animate({ left: evt.clientX, top: evt.clientY });
});

答案 1 :(得分:2)

Mothana,Quentin几乎是对的。我使用d3.js(像jQuery一样的库)和旧的故事浏览器的事情是,未声明的事件是不可接受的。所以你有3种方法可以解决这个问题:

<强> 1。不要使用活动 - 我认为不是我们的情况。

<强> 2。使用函数的标准事件对象 - Quentin的答案中的示例。

第3。让您的javascript库对象为您完成工作。 d3.js中的示例:
我有这个不工作的代码:

    tooltip.style("top", (event.pageY-10)+"px").style("left",(event.pageX+10)+"px"))

我使用名为“d3”的d3.js对象为我选择事件(工作代码):

tooltip.style("top", (d3.event.pageY-10)+"px").style("left",(d3.event.pageX+10)+"px")

所以我想在jQuery中你必须使用你的javascript库对象的名称,比如jQuery.someSelection()。