首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解参数'e‘和e.pageX/e.pageY

了解参数'e‘和e.pageX/e.pageY
EN

Stack Overflow用户
提问于 2012-09-23 18:29:44
回答 3查看 206关注 0票数 1
代码语言:javascript
复制
function smtMouseMove(e){
    smtMouseCoordsX=e.pageX;
    smtMouseCoordsY=e.pageY;
    smtTipPosition();
}

function smtTipPosition(e){
    var thePosX=e.pageX+20;
    smtTip.css("left",thePosX);

    var thePosY=smtMouseCoordsY+20;
    smtTip.css("top",thePosY);

}

如果我有这个:var thePosX=e.pageX+20;,我会得到参数e未定义的错误。但是,如果我编写var thePosX=smtMouseCoordsX+20;,一切都是正常的。我在这里错过了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-23 18:32:48

在您的函数声明中,您请求发送一个参数e

代码语言:javascript
复制
function smtTipPosition(e) {}

但是,你是在而不是在你执行的时候发送参数。

代码语言:javascript
复制
function smtMouseMove(e){
    smtMouseCoordsX=e.pageX;
    smtMouseCoordsY=e.pageY;
    smtTipPosition();
               // ^ Right here, you have to send the parameter 'e' too
}

实现像这样的东西,应该可以解决这个问题。

代码语言:javascript
复制
function smtMouseMove(e){
    smtTipPosition(e);
}

function smtTipPosition(e){
    var thePosX=e.pageX+20;
    smtTip.css("left",thePosX);

    var thePosY=smtMouseCoordsY+20;
    smtTip.css("top",thePosY);

}

通常,e指的是事件对象。它必须由某个事件或函数启动或传递。在您的例子中,函数setMouseMovesmtTipPosition都需要一个事件对象来执行。

让我们看一个简单的例子

代码语言:javascript
复制
$("a").click(function(e) {
    //Here `e` will hold the event object of the page, when any `a` on the page will be clicked
    console.log(e.pageX); //Calling this will give the x coordinates of mouse position on the page, when the `a` was clicked
});
票数 2
EN

Stack Overflow用户

发布于 2012-09-23 18:36:51

e是一个事件对象,事件对象与方法或事件(如onmouseover、onmousout事件)相关联。

您缺少参数smtTipPosition();函数。或者传递事件对象,或者将位置值发送给smtTipPosition()函数

代码语言:javascript
复制
function smtMouseMove(e){
    smtMouseCoordsX=e.pageX;
    smtMouseCoordsY=e.pageY;
    smtTipPosition(smtMouseCoordsX,smtMouseCoordsy);
}

使用位置和参数值设置css。

代码语言:javascript
复制
function smtTipPosition(posX, PosY){
    var thePosX=posX+20;
    smtTip.css("left",thePosX);

    var thePosY=PosY+20;
    smtTip.css("top",thePosY);

}
票数 0
EN

Stack Overflow用户

发布于 2012-09-23 18:41:31

正如其他人已经说过的,你必须将鼠标位置传递给第二个方法,如下所示:

代码语言:javascript
复制
function smtMouseMove(e){
    smtTipPosition({ x: e.pageX, y: e.pageY });
}

function smtTipPosition(point) {
    smtTip.css("left", e.x + 20);
    smtTip.css("top", e.y + 20);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12551563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档