2011-10-24 216 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); 
});