6

我正在尝试这样做:

$("#canvasDiv").mouseover(function() {
    var pageCoords = "( " + e.pageX + ", " + e.pageY + " )";
    var clientCoords = "( " + e.clientX + ", " + e.clientY + " )";
    $(".filler").text("( e.pageX, e.pageY ) : " + pageCoords);
    $(".filler").text("( e.clientX, e.clientY ) : " + clientCoords);
});

在控制台中我得到了这个:

Uncaught ReferenceError: e is not defined

我不明白...我认为e应该是 JavaScript 已经设置的变量...帮助?

4

3 回答 3

15

改变

$("#canvasDiv").mouseover(function() {

$("#canvasDiv").mouseover(function(e) {

诚然,回调的第一个参数是预定义的,但为了使用它,您必须通过参数名称对其进行别名。这就是我们指定e为参数的原因。实际上,参数名称不需要是e. 这也可以:

$('#canvasDiv').mouseover(function( event ) {

});

event但是您必须通过函数回调中的名称为事件对象起别名。

于 2012-11-10T21:43:06.587 回答
2

您正在定义一个回调函数,当鼠标悬停事件发生时将调用该回调函数。框架会将有关事件的信息作为第一个参数传递给此函数,通常将此参数命名为“e”。但是你必须在函数参数中声明它,即

$('foo').mouseover(function (e) {
于 2012-11-10T21:44:31.330 回答
1
             .....missing e ---- -\/
$("#canvasDiv").mouseover(function(e) {
    var pageCoords = "( " + e.pageX + ", " + e.pageY + " )";
    var clientCoords = "( " + e.clientX + ", " + e.clientY + " )";
    $(".filler").text("( e.pageX, e.pageY ) : " + pageCoords);
    $(".filler").text("( e.clientX, e.clientY ) : " + clientCoords);
});
于 2012-11-10T21:44:00.193 回答