Нажатие на место щелчка мыши в массив в Javascript - PullRequest
0 голосов
/ 12 июля 2010

Я пытаюсь выдвинуть координаты щелчка мышью на конкретном элементе до конца массива. Вот что у меня есть:

В ГОЛОВУ:

var seatsArray = [];

В ТЕЛЕ:

var coordinates = document.getElementById("image");
coordinates.onclick = function(event) {
  seatsArray.push(offsetX, offsetY);
}
document.write("Seats array contains: " + seatsArray + ".");

Возможно, что-то простое, но я новичок в javascript, поэтому буду признателен за любую помощь в том, почему он не работает!

Спасибо

1 Ответ

1 голос
/ 12 июля 2010

Я вижу две вещи, изменив ваше событие при нажатии на это:

coordinates.onclick = function(event) {
  event = event || window.event;
  if (!window.event) { // thanks firefox
    event.offsetX = event.layerX;
        event.offsetY = event.layerY;
  } 
  seatsArray.push(event.offsetX, event.offsetY);
}

Firefox offsetX / Y - это layerX / Y, то есть объект глобального события.

Но если вы не хотите использовать глобальные слова, попробуйте это:

coordinates.onclick = function(e) {
e = e || window.event;

if (e && e.pageX && e.pageY) {
            e.posX = e.pageX;
            e.posY = e.pageY;

        } else if (e && e.clientX && e.clientY) {
            var scr     = {x:0,y:0},
                object  = e.srcElement || e.target;
            //legendary get scrolled
            for (;object.parentNode;object = object.parentNode) {
                scr['x'] += object.scrollLeft;
                scr['y'] += object.scrollTop;
            } 
            e.posX = e.clientX + scr.x;
            e.posY = e.clientY + scr.y;
        } 
 seatsArray.push(e.posX, e.posY);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...