Триггеры 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 - исправлено
вещи, которые я узнал
- триггер () не требуется в документе (готово)
- заставить $.ui.keyCode работать было сложно (по крайней мере для меня)
- всегда видеть, какие другие функции подключены к входу (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