События щелчка мыши - координаты мыши в Firefox - PullRequest
1 голос
/ 24 октября 2011

Я хотел выяснить координаты события щелчка мышью на странице.Написал небольшой кусочек JS, который хорошо работает на Chrome, но не на Firefox.Кажется, что глобальное событие по умолчанию недоступно в Firefox.Вот уменьшенная версия кода, который работал на Chrome:

 $("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?

Заранее спасибо за помощь.

Ответы [ 4 ]

2 голосов
/ 24 октября 2011

jQuery (который, похоже, вы используете) сортирует параметр события по сравнению с глобальной проблемой event для вас, так что вам не нужно об этом беспокоиться.Также нормализует свойства pageX и pageY.

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

    console.log('Click called on body.' + xx + ':' + yy);
});
0 голосов
/ 24 октября 2011

Вам нужно передать переменную события в вызове функции click, например,

.click(function(e){
    console.log(e);
});
0 голосов
/ 24 октября 2011

Вы забыли передать событие в качестве параметра.Используйте приведенный ниже формат и выполните console.log (e), чтобы получить все данные, связанные с ним.Но я не уверен, что у него есть координаты x и y, возможно, вам придется получить координаты элемента, по которому он щелкнул.

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

РЕДАКТИРОВАТЬ: кажется, что предоставлены pageX и pageY вместе с кучейдругие ...

0 голосов
/ 24 октября 2011

JQuery передает событие в качестве первого аргумента вашему обработчику кликов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...