Я бы хотел, чтобы текстовое поле исчезло, если человек щелкнет мышью за его пределами (.focusout или .blur), но я также хочу иметь возможность выполнять ту же функцию, если нажата Esc (клавиша 27). Я не уверен, как заставить обоих быть распознанными, не разрушая весь мой сценарий.
Вы можете привязать оба события к одной и той же функции с помощью
$(selector).bind("blur keyup",function(e){...})
И тогда это просто логика принятия решения, чтобы увидеть, была ли нажата клавиша или еще что-то.
Как насчет этого:
$('#selector').bind('blur keyup', function(e) { if(e.keyCode == 27 || e.keyCode == undefined) $(this).hide(); });
Я бы создал пользовательское событие, привязанное к текстовому полю:
<script> $(document).ready(function(){ $("#id").bind("blur keyup myCustomEvent"),function(event){ //whatever you need // you can trigger this logic again via .trigger("myCustomEvent"); }); }); </script>