Я пытался использовать событие нажатия клавиш или keydown на "@", чтобы создать раскрывающийся список в div contenteditale. Но я не нашел ключевой код для "@", и я не могу использовать shift и 2 beacause, это будет проблемой для многих раскладок клавиатуры, включая раскладку клавиатуры для мобильных устройств
Вы можете искать ключевой код для @, который является десятичным числом 64
в jQuery e.which
:
$(document).on("keypress", function(e) {
// look for @ key
if (e.which === 64) {
alert("@ key pressed");
}
});
Рабочая демонстрация: http://jsfiddle.net/jfriend00/s7KGb/
Вы могли бы также кодировать его так, как это может быть немного более читаемым:
$(document).on("keypress", function(e) {
// look for @ key
if (String.fromCharCode(e.which) === '@') {
alert("@ key pressed");
}
});
String.fromCharCode(e.which)
вернет точный символ. PS: это jQuery,which
developer.mozilla.org/en-US/docs/Web/API/event.which ?event.keyCode
иevent.charCode
и помещает согласованный результат вevent.which
. Смотрите описание jQuery здесь . Это также может быть чем-то, что делают некоторые версии Firefox, но это не является частью какого-либо стандарта и, конечно, это не то, что вы можете использовать во всех браузерах без посредника, такого как jQuery.