Определить местоположение щелчка мыши - PullRequest
6 голосов
/ 27 мая 2011

То, чего я пытаюсь добиться, - это создать DIV и отобразить на нем изображение карты мира или в качестве фона. И когда пользователь нажимает на какое-то место на карте, я ловлю место щелчка мышью,

затем я кое-как перевожу X, Y шнуры мыши в долготу, широту и затем запускаю AJAX для отображения некоторых данных.

Моя проблема:

  • Как получить местоположение щелчка мышью с помощью JavaScript
  • Как преобразовать глобальное местоположение щелчка в относительные координаты X, Y DIVслой

Ответы [ 4 ]

2 голосов
/ 27 мая 2011

В HTML вы устанавливаете событие onMouseMove:

<div onMouseMove="getPositions();"
style="width:200px;height:100px"></div>

И функцию javascript:

function getPositions(ev) {
if (ev == null) { ev = window.event }
   _mouseX = ev.clientX;
   _mouseY = ev.clientY;
}
0 голосов
/ 27 мая 2011

В обработчике событий вы можете получить его через mouseEvent Args.

Выдержка из http://msdn.microsoft.com/en-us/library/bb404721.aspx -

function onMouseLeftButtonUp(sender, mouseEventArgs)
{
    // Return a Point object representing the x- and y-coordinates of the current mouse position
    // relative to the reference object.
    var pt = mouseEventArgs.getPosition(sender.findName("referenceObject"));

    // Display the current mouse position.
    sender.findName("Status").text = pt.x + " : " + pt.y;
}
0 голосов
/ 27 мая 2011

Если у вас нет причин сделать это с нуля, я бы порекомендовал Google Maps Api .

. Вы заметите, что объект Map имеет щелчокСобытие, к которому вы можете привязать обратный вызов, который получает MouseEvent, содержащий координаты широты и долготы.Посмотрите этот пример .

...