Можно ли определить состояние клавиши ctrl по событию dblclick? - PullRequest
2 голосов
/ 21 октября 2010

Я использую Google Maps API версии 3. Мне бы хотелось, чтобы мой обработчик событий двойного щелчка работал следующим образом:

google.maps.event.addListener(map, 'dblclick', function(e) {
  if (/* ctrl is pressed */) {
    doSomething(e)
  } else {
    doSomethingElse(e)
  }
});

Похоже, что обработчик событий предоставляет только MouseEvent, который не содержит информацию осостояние клавиатуры.Мне нужна информация о LatLng, поэтому я сомневаюсь, что могу использовать обработку событий JQuery.

Мне здесь не повезло?

Ответы [ 2 ]

5 голосов
/ 22 октября 2010

Вы можете просто кешировать состояние управляющей клавиши

var ctrlPressed = false;
function cacheIt(event) {
    ctrlPressed = event.ctrlKey;
}
document.onkeydown = cacheIt;
document.onkeyup = cacheIt;

Теперь ctrlPressed всегда должно отражать, нажата или нет управляющая клавиша.

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

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

Вот пример использования jQuery:

$(window).blur( function () {
  // Clear cached key presses here
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...