Ваш button
изначально принимает фокус клавиатуры, а ваш div
- нет. Добавьте это к .shape
:
Демо
$(".shape").keydown(function(e) {
if (e.which === 8) {
// added for demo to prevent browser address change
e.preventDefault();
$(this).css("background-color", "black");
}
});
$(".shape").keyup(function() {
$(this).css("background-color", "yellow");
});
.shape {
width: 40px;
height: 40px;
background-color: pink;
}
Чтобы прослушивать любое ключевое событие, не обращая внимания на конкретный элемент, вы можете настроить свой код следующим образом:
[ 1121]
$(document).keydown(function(e) {
if (e.which === 8) {
e.preventDefault();
$(".shape").css("background-color", "black");
}
});
$(document).keyup(function() {
$(".shape").css("background-color", "yellow");
});
.shape {
width: 40px;
height: 40px;
background-color: pink;
}
Это похоже на какую-то трудно воспроизводимую ошибку (я не вижу их и в 2k8) согласно этой старой ссылке :
Если мы хотели сделать это правильно, нам нужно было бы создать соответствующие escape-последовательности для этих символов. например, покажите "\ r \ n" в строке. Поведение при удалении специальных символов исторически и будет исправлено в будущих версиях. Если вы просматриваете текст с новой строкой в нем, вы можете просмотреть строку как массив символов: введите «str, 100», чтобы просмотреть строку длиной 100 как массив. Или вы можете щелкнуть значок увеличительного стекла и просмотреть строку в многострочном элементе управления.
Месяц спустя:
Мы не можем воспроизвести эту проблему ни на VS2003, ни на VS2005. Это похоже на проблему, связанную с машиной.
Это может быть шрифт, который вы используете? Вы все используете один и тот же (желательно по умолчанию) шрифт?
У меня было несколько неприятных проблем, когда люди делали это. Не уверен, что это ваша проблема, но стоит кое-что проверить.