В настоящее время я разрабатываю приложение, которое использует карту (данные OpenStreetMap через Leaflet.js) и маркеры, отображаемые на карте.
Я реализовал выбор для пользователя, чтобы он мог щелкнуть маркеры, чтобы выделить их, и щелкнуть, удерживая нажатой клавишу Ctrl, чтобы добавить маркеры к выбору. Это хорошо работает.
Теперь я хочу, чтобы пользователь мог выбрать все маркеры, находящиеся в данный момент на карте, нажав CtrlA. Код, который я использую для этого, выглядит так:
jQuery(document).keydown(function(e) {
if (e.ctrlKey) {
if (e.keyCode == 65 || e.keyCode == 97) { // 'A' or 'a'
e.stopPropagation();
// SELECT ALL MARKERS HERE...
}
}
});
Это работает, если речь идет о одновременном нажатии клавиш Ctrl и A, выбор делается так, как я хочу.
Моя проблема: несмотря на то, что я добавил строку, чтобы остановить распространение события, браузер (протестированный в Chrome и Opera) по-прежнему выполняет обычный выбор Ctrl+A, т.е. в дополнение к тому, что мои маркеры выбираются моей пользовательской реализацией выбора на карте, выбирается вся веб-страница. Это раздражает: кроме карты на этой странице нет текста, который можно было бы выбрать, так что в этом нет смысла - я хотел бы отключить CtrlA, пока моя карта Показано.
P.S. Я попытался использовать код, показанный в Как я могу отключить Ctrl+A (выбрать все) с помощью jquery в браузере?, но не смог заставить его работать. Эта функция действительно есть в API?