2011-09-30 19 views
3

我想在鼠標按下的地方展示一些東西,我試圖用:如何獲得確切的鼠標向下座標?爲什麼我的代碼不起作用?

$('#my-graph').mousedown(function(evt){ 

     // show object at: 
     var x= evt.screenX, y=evt.screenY; 

     //or show object at: 
    var x2=evt.pageX, y2=evt.pageY; 

    //code to render object at (x,y) and (x2,y2) 
    ...... 
}); 

但無論是上述(X,Y)和(x2,y2)將描繪對象,在點擊鼠標放置,並顯示對象距鼠標位置一段距離,爲什麼?

我渲染的位置屬性的對象,該位置是相對於#我-圖格,留下了DIV的最角落被認爲是原點(0,0)

+0

你期望的座標是什麼意思?我的意思是,相對於什麼?頁面,屏幕或元素? – pimvdb

+0

您是否使用適當的位置屬性渲染對象?例如。位置:與屏幕相關的絕對位置? – Przemek

+0

是的,我用位置屬性渲染位置,與#my-graph div相關,左上角的div最左上角應該是原點 –

回答

5

你似乎想要offsetXoffsetYhttp://jsfiddle.net/f52Gg/

$("div").mousedown(function(e){ 
    alert(e.offsetX + " " + e.offsetY); 
}); 
+0

我不認爲這是Firefox支持的,使用'e.layerX'和'e.layerY'代替 – Bugster

+1

@Bugster:Firefox似乎不支持'offsetX',但WebKit不支持'layerX'。也可以從'pageX'中減去元素的偏移量。 – pimvdb

相關問題