简体   繁体   English

事件侦听器不适用于Enter键

[英]Event listener doesn't work for Enter key

What may be the reason, that event listener of Enter key doesn't work? Enter键的事件侦听器不起作用可能是什么原因?

I tried both plain JS: 我都尝试了普通的JS:

addEventListener("keydown", function (e) {
    if (e.keyCode === 13) {
        enter(e);
    }
});

function enter(e) {
    event.preventDefault();
    alert("You pressed enter");
}

and jQuery: 和jQuery:

$(document).keypress(function(e) {
    if(event.which == 13) {
        event.preventDefault();
        alert('You pressed enter!');
    }
});

Also, I tried both event and e . 另外,我尝试了evente Doesn't work. 不起作用 For another key, for example Backspace it works well. 对于另一个键,例如Backspace它可以很好地工作。

That is a plugin for our corporate intranet - when you click some letter in email inbox, and after that press Enter , small pop-up window must be shown. 那是我们公司内部网的插件-当您单击电子邮件收件箱中的某个字母,然后按Enter ,必须显示一个小的弹出窗口。 But for some reason Enter is ignored in my script - instead of showing pop-up, webpage immediately opens the letter (that is a default behavior). 但是由于某种原因,我的脚本中会忽略Enter -网页没有显示弹出窗口,而是立即打开字母(这是默认行为)。

As I understand, the reason may be in another listener somewhere in webmail interface? 据我了解,原因可能是在Webmail界面中的另一个侦听器中? Or not? 或不? If yes, may I somehow impart higher priority for handling Enter (so, before opening the letter, pop-up will be shown)? 如果是,我可以以某种方式赋予更高的优先级来处理Enter (因此,在打开字母之前,将显示弹出窗口)?

Apologize for long description. 抱歉,不提供详细说明。

It should work as long as you bind the event handler within the document.ready 只要您将事件处理程序绑定到document.ready它就应该起作用。

$(function(){

    $(document).keypress(function(e) {

       if(event.which == 13) {
          event.preventDefault();
          alert('You pressed enter!');
       }
   });

});

Here is a working sample 是一个工作样本

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM