Захват нажатия на вкладку в pre tag работает странным образом

Я хочу поймать щелчок на вкладке и вставить пробел.

Я добавил предупреждение в код, чтобы проверить определенное значение, и, возможно, знаю, почему оно не работает для меня, а затем я обнаружил, что код с предупреждением работает и без предупреждения не работает. Почему нет и как я могу это исправить?

Это работает для меня:

$('pre').keydown(function (e) {
    var keyCode = e.keyCode || e.which;

    if (keyCode == 9) {
        alert('test');
        e.preventDefault();
        $(this).val($(this).val() + '\t');
    }
});

Это не работает:

$('pre').keydown(function (e) {
    var keyCode = e.keyCode || e.which;

    if (keyCode == 9) {
        e.preventDefault();
        $(this).val($(this).val() + '\t');
    }
});

1 ответ

Что такое "предварительно"? Это класс или идентификатор? Если это класс то ставь .pre или если это id, то добавьте #pre,

$('#pre').keydown(function (e) {
    var keyCode = e.keyCode || e.which;

    if (keyCode == 9) {
        alert('test');
        e.preventDefault();
        $(this).val($(this).val() + '\t');
    }
});

или же

$('.pre').keydown(function (e) {
    var keyCode = e.keyCode || e.which;

    if (keyCode == 9) {
        alert('test');
        e.preventDefault();
        $(this).val($(this).val() + '\t');
    }
});

или вы также можете использовать

$('.pre').bind('keydown',function (e) {
    var keyCode = e.keyCode || e.which;

    if (keyCode == 9) {
        alert('test');
        e.preventDefault();
        $(this).val($(this).val() + '\t');
    }
});
Другие вопросы по тегам