2016-08-10 3 views
0
$(document).ready(function() { 
    $('#FeedbackCloseIcon').click(function(e) { 
    console.log('clicked icon'); 
    }); 

    $('#FeedbackCloseIcon').on('keyup', function (event) { 
    console.log('button on icon'); 
    if(event.which === 13){ 
     console.log('enter on icon'); 
    } 
    }); 
}); 

Проблема, с которой я столкнулась, - это событие keyup для FeedbackCloseIcon, которое не срабатывает. Событие click отлично работает.Невозможно получить событие активации клавиатуры для значка

<button class="dialog-close" aria-label="close" href="#" type="button"> 
    <span class="icon icon-close" id="FeedbackCloseIcon">x</span> 
</button> 

Если изменить объект для KeyUp события в

<a class="dialog-cancel" id="cancel-feedback" href="javascript:void(0)">Cancel</a> 

Он отлично работает

$('#cancel-feedback').on('keyup', function (event) { 
    console.log('button on icon'); 
    if(event.which === 13) { 
    console.log('enter on icon'); 
    } 
}); 
+4

Элемент 'span' не может быть сфокусирован, он не может захватить какое-либо ключевое событие. Вы можете установить атрибут 'tabindex', чтобы сделать его фокусным. –

+1

Его непонятно, если что работает и что не работает. –

ответ

1

Span KeyUp/KeyDown Или любая клавиша событие не регистрируется в DOM , вы должны получить его родительское среднее нажатие клавиши Keyup/keydown/keypress.

$(".dialog-close").keypress(function (e) {    
     console.log('enter on icon'); 
    }); 
Смежные вопросы