2014-01-14 47 views
0

我創造了一點的代碼,目前在JavaScript中玩頂級王牌風格的紙牌遊戲,並點擊Firefox中的卡點擊。我的代碼字在所有其他瀏覽器中都很好,但firefox只是不會在點擊卡上註冊點擊。JavaScript的鼠標點擊沒有註冊在Firefox中

這是我的一段代碼,用來展示我如何閱讀鼠標點擊以及如何使用它們。希望這只是我錯過的一些愚蠢的東西。

編輯:我也許應該提到的是,遊戲是一個畫面內的html頁面

var mouseX = e.offsetX; 
var mouseY = e.offsetY; 

if(turn == 'Player') 
{ 
    if(mouseX >= 110 && mouseX <= 325) 
    { 
     if(mouseY >= 265 && mouseY <= 285) 
     { 
     playerChoice = 'ppi'; 
     } 
     if(mouseY >= 286 && mouseY <= 306) 
     { 
      playerChoice = 'hp'; 
     } 
     if(mouseY >= 307 && mouseY <= 327) 
     { 
      playerChoice = 'aa'; 
     } 
     if(mouseY >= 328 && mouseY <= 348) 
     { 
      playerChoice = 'ad'; 
     } 
     if(mouseY >= 349 && mouseY <= 369) 
     { 
      playerChoice = 's'; 
     } 
     if(mouseY >= 370 && mouseY <= 390) 
     { 
      playerChoice ='bs'; 
     } 
    } 
} 

回答

0

正如@Kevin說,有沒有offsetXoffsetY使用。作爲他的建議的替代方案,有element.getBoundingClientRect()。例如:

var rect = e.target.getBoundingClientRect();  
mouseY = e.clientY - rect.top; 
mouseX = e.clientX - rect.left; 

Source

0

MouseEvent對象在Firefox中不包含offsetXoffsetY的一部分。嘗試使用layerXlayerY。這將使腳本跨瀏覽器兼容。

var mouseX = (e.hasOwnProperty("offsetX") ? e.offsetX: e.layerX; 
var mouseY = (e.hasOwnProperty("offsetY") ? e.offsetY: e.layerY; 

JS小提琴:http://jsfiddle.net/W4hgR/

相關問題