处理关键[Up | Down | Press]事件时,我应该使用.which还是.keyCode? 我可以使用一些示例代码来处理jQuery中的三个键盘事件吗? 你能不用jQuery做到吗? 我希望它在每个浏览器中可靠地工作。 更新 奇怪的是,jQuery的event.which规范化不适用于我的handleKey Press (事件)处理程序: // Add which for key events if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) ) { event.which = event.charCode || event.keyCode; } 我在handleKey Press中的这个规范化之前和之后得到了这个(它没有将event.which设置为event.keyCode中的值): event.which = 0 event.charCode = 0 event.keyCode = 40 但是,如果我使用handleKey Down代码,则代码可以正常工作。 我认为它与keypress vs. keydown有关; […]
我正在使用箭头键导航表。 基于当前选定的行,我必须在div中加载一些细节。 选择一行后,它将向服务器发出Ajax调用以获取更多细节并在div中加载该细节。 这可能需要一些时间来进行Ajax调用和更新div。 在这段时间内,我想禁用按键事件。 $(‘#tbl tbody’).on(‘keydown’, function (event) { var keyCode = event.keyCode; if (keyCode >= 37 && keyCode <= 40) { event.preventDefault(); ChangeTarget(keyCode) } }); 我只是想解开或暂停keydown事件一段时间。 我试图利用时间,但这并没有像我想要的那样帮助我。 $(‘#tbl tbody’).on(‘keydown’, function (event) { var keyCode = event.keyCode; if (keyCode >= 37 && keyCode <= 40) { event.preventDefault(); ChangeTarget(keyCode); setTimeout(function () { }, 10000); } […]
我有一个带有两个文本框和一个按钮的asp.net表单。 我已经实现了代码以在按下回车键时触发按钮的click事件。 $(document).keydown(function (event) { if (event == undefined) { event = window.event; } if (event.keyCode == 13) { $(‘.enterButton’).focus(); $(‘.enterButton’).click(); } }); 这适用于IE和Firefox,但不适用于Chrome。 我使用开发人员工具在Chrome中调试了JS,发现keycode == 13中的语句是否执行了块但是click事件没有以某种方式被触发。 有什么想法解决这个问题吗?
我需要拦截Safari中的浏览器重新加载function(我知道这通常不是应该做的事情,但在我的情况下,这是有道理的)。 对于Windows我只是这样做: $(document).keydown(function(event) { if ( event.which == 116 ) { restart(); return false; } }); 我是否需要使用JQuery插件同时捕获两个密钥,或者这已经以某种forms在JQuery中实现了? 另外,Mac下的键码是否与Windows下的键码相同? (“Command”是键码“17”,“r”是“19”?)或者命令键是“55”而“r”是“15”? (使用此来源: http : //boredzo.org/blog/archives/2007-05-22/virtual-key-codes
如何从jquery将参数传递给keydown方法,因为每当我使用其他地方定义的变量时,它返回undefined。 我假设它是因为#target是窗口,因此它不在范围内,但即使这样我也无法将key.which()与外部参数进行比较,然后将其分配给另一个属性。 例: var a = 38; var b = 0; $(document).keydown(function(e){ var key = e.which; if (a==key) b=key; }); console.log(a+””+b); 每当我尝试沿同一行做某事时它返回38 0,我将其解释为它不在范围内并且未定义(也因为如果我记录b它在keydown func中打印未定义)? 我怎么能通过?
我正在尝试滚动到keydown事件中的2个不同元素,第一次按下时的第一个元素,第二次按下时的第二个元素,并在每按两次(或点击)后重复该事件。 我创建了一个JSFiddle演示,链接如下。 小提琴 如您所见,它不会在第二次按下(或点击)时滚动到底部元素。 我唯一能想到的就是在第二个事件中使用“.offset()。top”之外的其他东西。 但是,如果你们中的一些JS大师看看我的代码,你可能会看到错误或者可能是另一种解决方案,以达到理想的效果。 提前致谢! .offset().top ??? MAIN BUG已解决,但是新的bug已经泄露..如果用户单击向上箭头,有没有办法将命中变量重置为ZERO? 没有更多的错误! 您可以免费使用此脚本!
我目前正在尝试更改多选元素的默认行为,以便用户可以选择和取消选择多个值,而无需一直按Ctrl键。 我在这里找到了一个简单的解决方案,但这在ie8中不起作用(因为在ie中, onmousedown 不适用于选项元素 )。 但我想,只要鼠标hover在多选中,就可以模拟按下的控制键: $(document).ready(function() { $(‘select’).hover(function(e) { var kde = jQuery.Event(“keydown”); kde.ctrlKey = true; //something like this kde.keyCode = 17; //or this – i don’t know $(e.target).trigger(kde); }); }); 为什么这不起作用? 是否直接再次释放Ctrl键? 代码有问题吗? 我完全错过了其他的东西吗?
我尝试使用jquery和ajax创建一个MS-Dos仿真窗口。 它工作得很好但是当我输入一个单词或按回车键时,脚本显示的时间太晚了(第一次按下时没有显示任何字符,对于每个下一个keydown,它显示用户键入的前一个字符而不是当前字符)。 这是我的脚本的简化版本: $(document).ready(function() { //set cursor position $(‘#cursor’).css(‘left’,’0px’); //focus on textfield $(‘#field’).focus(); //On key down… $(‘#field’).keydown(function(event) { request=$(this).val(); count=$(this).val().length; //Display chars as they come $(“#instruct”).html(request); // If “enter” is pressed if (event.which == 13) { event.preventDefault(); //clean user entry request=request.replace(/\n/g, “”); // Process user entry $.ajax({ type: “POST”, url: “scripts/ajax/terminal.php”, data: {command:request}, success: function(response) […]
我正试图找到一种方法来validation按键上的文本输入,我想只在我的文本输入中包含数字,包括小数。 我正在采用jQuery.keydown的方法,检查密钥是什么,如果密钥不在允许列表中,则使用event.preventDefault()。 但从那时起我就读到各个浏览器的密钥不一致,我也担心不同的操作系统。 我遇到过这个问题,但是我不能说正则表达式,也不确定这是否符合我的需要: jquery – validation按键上的字符? 使用该方法,当键入00时,期望00.00的正则表达式将停止用户,因为在加密时检查正则表达式。 谢谢
我有一个简单的javascript keydown事件通过jquery编码。 该事件应该只提醒“关闭”的密钥。 这适用于大多数密钥,但不适用于Internet Explorer中的退格键。 我读到IE在keypress事件上搞砸了这个但是应该用于keydown和keyup事件。 有什么我可以通过jquery来捕获IE中的退格键吗? 我正在测试的IE版本是: 8.0.7600.16385 $(‘.AddressField’).bind(“keydown”, function (e) { alert(e.keyCode); });