関数宣言で、パラメーター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
});