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;,一切都是正常的。我在这里错过了什么?
发布于 2012-09-23 18:32:48
在您的函数声明中,您请求发送一个参数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
});发布于 2012-09-23 18:36:51
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);
}发布于 2012-09-23 18:41:31
正如其他人已经说过的,你必须将鼠标位置传递给第二个方法,如下所示:
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);
}https://stackoverflow.com/questions/12551563
复制相似问题