我正在尝试这样做:
$("#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已经设置的变量...帮助?
答案 0 :(得分:12)
更改
$("#canvasDiv").mouseover(function() {
到
$("#canvasDiv").mouseover(function(e) {
是的,回调的第一个参数是预定义的,但是为了使用它,你必须通过参数名称对它进行别名。这就是为什么我们指定e
作为参数。实际上,参数名称不需要e
。这也有效:
$('#canvasDiv').mouseover(function( event ) {
});
但是您必须通过函数回调中的名称event
为事件对象设置别名。
答案 1 :(得分:2)
您正在定义一个回调函数,该函数将在鼠标悬停事件发生时调用。 框架将有关事件的信息作为此函数的第一个参数传递,并且通常将此参数命名为“e”。但是你必须在函数参数中声明它,即
$('foo').mouseover(function (e) {
答案 2 :(得分: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);
});