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;
一切都好。我在这里想念什么?
答案 0 :(得分:2)
在函数声明中,您要求发送参数e
。
function smtTipPosition(e) {}
但是,您 在执行时发送参数。
function smtMouseMove(e){
smtMouseCoordsX=e.pageX;
smtMouseCoordsY=e.pageY;
smtTipPosition();
// ^ Right here, you have to send the parameter 'e' too
}
实现类似的东西,应该解决问题。
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
是指 事件对象 。它必须由某些事件或功能启动或传递。在你的情况下,函数setMouseMove
和smtTipPosition
都需要一个事件对象来执行它。
让我们看一个简单的例子
$("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
});
答案 1 :(得分:0)
e
是一个事件对象,事件对象与方法或事件(例如onmouseover,onmousout事件)相关联。
您缺少参数smtTipPosition();
功能。要么传递事件对象,要么将位置值发送到smtTipPosition()函数
function smtMouseMove(e){
smtMouseCoordsX=e.pageX;
smtMouseCoordsY=e.pageY;
smtTipPosition(smtMouseCoordsX,smtMouseCoordsy);
}
使用参数化值设置带有位置的css。
function smtTipPosition(posX, PosY){
var thePosX=posX+20;
smtTip.css("left",thePosX);
var thePosY=PosY+20;
smtTip.css("top",thePosY);
}
答案 2 :(得分:0)
正如其他人已经说过你要将鼠标位置传递给第二种方法,如下所示:
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);
}