Я добавил этот код на свой сайт:
$(document).bind('keydown', 'i', function(){ $("#af").click(); return false;});
Проблема в том, что он работает с любым ключом, не только для «i».Что не так?
В вашем коде 'i' - это параметр, который передается вашей функции обратного вызова.Это не влияет на то, на какие коды символов будет реагировать ваше событие.Вы можете сделать это через
'i'
$(document).bind('keydown', function(e){ if (String.fromCharCode(e.keyCode) == 'I') { $("#af").click(); e.preventDefault(); } });
Поскольку jQuery Doc сказал:
event.which нормализует event.keyCode и event.charCode.Рекомендуется следить за событием, которое для ввода с клавиатуры.Для более подробной информации читайте о event.charCode на MDC .
, тогда лучше использовать
$(document).bind('keydown', function(e){ var code = (e.keyCode ? e.keyCode : e.which); if (code == 73) { $("#af").click(); return false; } });
Правильный способ сделать это:
$(document).bind('keydown', function(e){ if (e.keyCode =='i') { $("#af").click(); return false; } });