2011-10-24 158 views
1

我想找出頁面上鼠標點擊事件的座標。寫了一小段JS,它在Chrome上運行良好,但在Firefox上沒有。似乎默認的全球「事件」在Firefox中不可用。這是一個在Chrome上運行的代碼的較小版本:鼠標點擊事件 - 在Firefox上的鼠標座標

$("body").click(function() { 
    if (event == undefined) // for Chrome, 'event' is not undefined here 
     var event = window.event;   
    var xx; 
    var yy; 
    if (event) { 
    // Need this for Chrome (and IE) 
     xx = event.x; 
     yy = event.y; 
    } else { 
     // firefox 
     // WHAT SHOULD I DO HERE? 
    } 
    console.log('Click called on body.' + xx + ':' + yy); 
} 

我應該如何管理Firefox的情況?

在此先感謝您的幫助。

回答

2

的jQuery(它看起來像您正在使用)挑選出事件參數與全球event財產問題對你來說,所以你不必擔心這一點。它也正常化pageXpageY屬性。

$("body").click(function(evt) { 
    var xx = evt.pageX; 
    var yy = evt.pageY; 

    console.log('Click called on body.' + xx + ':' + yy); 
}); 
0

JQuery將事件作爲第一個參數傳遞給您的點擊處理程序。

0

您忘記了將事件作爲參數傳遞。使用以下格式,並執行console.log(e)以獲取與其關聯的所有數據。但我不確定它是否有x和y座標,您可能必須獲取它所點擊元素的座標。

$("body").click(function(e) { 
} 

編輯:pageX屬性和pageY似乎提供,與一羣人沿...

0

您需要在點擊函數調用中傳遞事件變量,例如

.click(function(e){ 
    console.log(e); 
});