1
我想用一個函數在畫布上繪製一個矩形。這一步的第一步是找到點擊鼠標的點。這裏是我使用的代碼:爲什麼我的javascript不會返回我想要的值?
wbtCanvas = document.getElementById("wbtCanvas");
function relMouseCoords(event){
var totalOffsetX = 0; //coordinates of corner of canvas
var totalOffsetY = 0;
var canvasX = 0;
var canvasY = 0;
var wbtCanvas = this; //what called the event
do{
totalOffsetX += wbtCanvas.offsetLeft - wbtCanvas.scrollLeft; //relative coordinates
totalOffsetY += wbtCanvas.offsetTop - wbtCanvas.scrollTop;
}
while(wbtCanvas = wbtCanvas.offsetParent)
canvasX = event.pageX - totalOffsetX;
canvasY = event.pageY - totalOffsetY;
point = {x:canvasX, y:canvasY};
console.log("{" + point.x + ", " + point.y + "}");
return point; //object returned
}
function drawRectangle(){
x = relMouseCoords.x;
y = relMouseCoords.y;
console.log(x + " " + y);
}
當我打電話功能的DrawRectangle()在控制檯中,確保我的鼠標指針在畫布上,它給了我下面的響應:
"undefined undefined"
呃...因爲你沒有調用函數?嘗試'var coords = relMouseCoords(event),x = coords.x,y = coords.y;'並且確保你正確地傳遞事件對象! – 2015-02-09 16:46:54