我在keydown和停止传播时遇到了困难
我不希望我的页面刷新,我已经尝试了我能想到的每一种方式,我目前的代码是
<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并且没有收到控制台错误
UPDATE
好吧它正在工作,现在我得到了
对象函数的属性“事件”(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 – 修复
我学到的东西
>文件中不需要trigger()(准备好)
>让$.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; } }
解决方法
停止默认操作的代码必须转到事件适用的元素.
$('#id_number').keydown(function(event){ event.preventDefault(); event.stopPropagation(); });
.trigger()
秒参数用于extraParameters