keydown 事件上的 jQuery 触发器()和 stopPropagation()

标签 jquery jquery-ui keydown preventdefault 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)} 的属性“event”不是函数 以下代码错误

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

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

 });

更新 #2 - 已修复

我学到的东西

  1. 文档中不需要trigger()(就绪)
  2. 让 $.ui.keyCode 工作很困难(至少对我来说)
  3. 始终查看附加到输入的其他功能(onblur、onfocus 等)又名 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;
 }
}

最佳答案

停止默认操作的代码必须转到事件适用的元素..

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

.trigger()第二个参数用于 extraParameters

关于keydown 事件上的 jQuery 触发器()和 stopPropagation(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12730657/

相关文章:

php - PHP、SQL 和 jQuery 之间的动态 ID

javascript - 每行不同的文本 Jquery Modal/Dialog 表单

jquery - 选择 jQuery UI 自动完成中的有效标签时启用 jQuery UI 对话框按钮

javascript - .blur() 和 .keypress() 在 jQuery 中不起作用

javascript - 隐藏与删除 DOM 元素

javascript - JQuery .on ("click", function() ) 不起作用

javascript - 异步脚本在延迟后执行

javascript - 使用 Underscore.js、jQuery 和 jQueryUI 在 RequireJS 中无法正确加载 Gridstack.js

javascript - 如何遍历事件对象的键?

javascript - 按键事件新值