Триггеры jQuery () и stopPropagation() для события нажатия клавиш

Я испытываю затруднения из-за нажатия клавиш и прекращения распространения

я не хочу, чтобы моя страница обновлялась, я пробовал все возможные варианты, мой текущий код

 <script>
 $(document).ready(function() {
 var e = jQuery.event( 'keydown', { which: $.ui.keyCode.ENTER } );

 $('#id_number').trigger(e, function(event){
event.preventDefault();
event.stopPropagation();
});

 });
 </script>

Любая идея о том, что я делаю не так здесь? Я думал, что событие было вызвано правильно, у меня JQuery и JQuery UI связаны правильно и не получаю ошибок консоли

ОБНОВЛЕНИЕ хорошо, это работало, теперь я получаю Свойство 'событие' функции объекта (a,b){return new e.fn.init(a,b,h)} не является ошибкой функции в приведенном ниже коде

 $(document).ready(function() {
 var e = jQuery.event( 'keydown', { which: $.ui.keyCode.ENTER } , function(event){
  event.preventDefault();
  event.stopPropagation();
}); 

 $('#id_number').trigger(e);

 });

ОБНОВЛЕНИЕ № 2 - исправлено

вещи, которые я узнал

  1. триггер () не требуется в документе (готово)
  2. заставить $.ui.keyCode работать было сложно (по крайней мере для меня)
  3. всегда видеть, какие другие функции подключены к входу (onblur, onfocus, ect) aka doh

переписал это к этому, отлично работает

 $(document).ready(function() {
    $('#id_number').keydown(OnKeyDown);
 });    

function OnKeyDown(e){
var code = (e.keyCode ? e.keyCode : e.which); //to support both methods
if(code == 13) { //the Enter keycode

    //my actions
 return false;
 }
}

1 ответ

Решение

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

$('#id_number').keydown(function(event){
  event.preventDefault();
  event.stopPropagation();
});

.trigger() Второй аргумент для extraParameters

Другие вопросы по тегам