簡體   English   中英

Javascript鼠標單擊未在firefox中注冊

[英]Javascript mouse clicks not registering in firefox

目前,我正在創建一些代碼,以使用javascript玩王牌風格的紙牌游戲,並在Firefox中單擊卡而遇到麻煩。 我的代碼字在所有其他瀏覽器中都可以,但是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';
        }
    }
}

Firefox中的MouseEvent對象不包含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/

正如@Kevin所說,沒有可使用的offsetXoffsetY 除了他的建議之外,還有element.getBoundingClientRect() 例:

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

來源

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM