Как отключить событие нажатия клавиши JQuery всего для одного элемента?

Я использовал BBEdit в течение многих лет. Это надежно, быстро, и интегрируется в мой рабочий процесс XCode прилично хорошо. (Я не уверен, что что-нибудь интегрируется в XCode, а также встроенного редактора, но у кого есть время для ожидания встроенного редактора?)

Для маленьких проектов команды, которые не используют систему управления исходным кодом, или для отдельного пользователя, редактирующего на нескольких машинах, SubEthaEdit приезжает настоятельно рекомендованный.

14
задан HRJ 10 November 2009 в 14:42
поделиться

3 ответа

В качестве альтернативы, вы можете присоединить другой обработчик событий к полю ввода, и в этом обработчике остановить распространение события:

jQuery('#input-field-id').bind('keypress', function(e) {
    e.stopPropagation(); 
});

Таким образом, вы можете оставить глобальный обработчик событий как есть . Может быть чище.

20
ответ дан 1 December 2019 в 12:13
поделиться

вы ищете event.target.id , который будет идентификатором элемента, для которого возникло событие. Итак, внутри myhandler вам понадобится что-то вроде следующего

function myhandler(e) {
    if (e.target.id !== 'id of input') {
        /* rest of event handler */
    }
}
3
ответ дан 1 December 2019 в 12:13
поделиться

См. документацию QuirksMode о порядке событий , и особенно о том, как отключить события, которые зависит от браузера. Цитата:

Для полноценного кросс-браузерного взаимодействия сделайте

function doSomething(e)
{
    if (!e) var e = window.event;
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
}
1
ответ дан 1 December 2019 в 12:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: