2010-07-12 44 views
-1

我試圖將鼠標單擊特定元素的座標推到數組的末尾。這是我有:將鼠標單擊位置推送到使用Javascript的數組中

在頭上:

var seatsArray = []; 

在身:

var coordinates = document.getElementById("image"); 
coordinates.onclick = function(event) { 
    seatsArray.push(offsetX, offsetY); 
} 
document.write("Seats array contains: " + seatsArray + "."); 

也許簡單的東西,但我是新來的JavaScript,所以我會很感激的任何幫助爲什麼它不工作!

感謝

+2

「座標」 相對的是什麼?文檔的開始,「圖像」元素,視口? – 2010-07-12 12:57:57

+0

相對於id爲「image」的元素。感謝 – IceDragon 2010-07-12 13:01:06

+0

距離它的中心或距離它的邊緣?當你問的時候你可能會更具體。 – galambalazs 2010-07-12 13:10:57

回答

1

兩件事我明白了,就點擊事件改變你這樣的:

coordinates.onclick = function(event) { 
    event = event || window.event; 
    if (!window.event) { // thanks firefox 
    event.offsetX = event.layerX; 
     event.offsetY = event.layerY; 
    } 
    seatsArray.push(event.offsetX, event.offsetY); 
} 

火狐OFFSETX/Y是layerX/Y,並即有一個全球性的事件對象。

但是,如果你的Wnt全球cordinates試試這個:

coordinates.onclick = function(e) { 
e = e || window.event; 

if (e && e.pageX && e.pageY) { 
      e.posX = e.pageX; 
      e.posY = e.pageY; 

     } else if (e && e.clientX && e.clientY) { 
      var scr  = {x:0,y:0}, 
       object = e.srcElement || e.target; 
      //legendary get scrolled 
      for (;object.parentNode;object = object.parentNode) { 
       scr['x'] += object.scrollLeft; 
       scr['y'] += object.scrollTop; 
      } 
      e.posX = e.clientX + scr.x; 
      e.posY = e.clientY + scr.y; 
     } 
seatsArray.push(e.posX, e.posY); 
} 
+0

啊是的。仍然似乎沒有推到數組上,因爲document.write只輸出我指定的文本,而當我單擊圖像時則不輸出座標。 謝謝 – IceDragon 2010-07-12 13:04:00

+0

全局腳本看起來很完美,但是,仍然沒有從document.write輸出數組。可能是因爲「圖像」元素是可縮放和可調整的()? 謝謝 – IceDragon 2010-07-12 13:12:30

+0

@IceDragon:你正在'click'處理器中發出'document.write'調用? – 2010-07-12 13:16:06

相關問題