3

我正在使用这个功能:

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

它适用于 Chrome 和 IE,但在 Firefox 中我收到此错误:

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

我该如何解决这个问题?

4

2 回答 2

6

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

jQuery('selector').on('click', function (evt) {
    jQuery("#tooltip").animate({ left: evt.clientX, top: evt.clientY });
});
于 2013-09-15T09:37:28.967 回答
2

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

1. 不要使用事件——我认为不是我们的情况。

2. 使用函数的标准事件对象- Quentin's answer中的示例。

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()。

于 2013-11-26T09:32:16.073 回答