2015-02-09 96 views
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" 
+0

呃...因爲你沒有調用函數?嘗試'var coords = relMouseCoords(event),x = coords.x,y = coords.y;'並且確保你正確地傳遞事件對象! – 2015-02-09 16:46:54

回答

2

relMouseCoords是一個函數,你必須把它和使用返回值:

function drawRectangle() { 
    var coords = relMouseCoords(); 
    console.log (coords.x + " " + coords.y); 
} 
0

一件事你需要打電話給你relMouseCoords功能。

相關問題