首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript onkeydown / addeventlistener

JavaScript onkeydown / addeventlistener
EN

Stack Overflow用户
提问于 2020-03-18 22:00:02
回答 3查看 67关注 0票数 2

我不知道这个问题是否在某个地方得到了回答,但它是这样的。

为什么这是有效的?

代码语言:javascript
复制
el.onkeydown = function(e) {
  if(!((e.keyCode > 95 && e.keyCode < 106) || (e.keyCode > 47 && e.keyCode < 58) || e.keyCode == 8)) {
     return false;
  }
}

这个不是吗?

代码语言:javascript
复制
function negativeNum(e) {
  if(!((e.keyCode > 95 && e.keyCode < 106) || (e.keyCode > 47 && e.keyCode < 58) || e.keyCode == 8)) {
    return false;
  }
}

el.addEventListener('keydown', function () {
  negativeNum(event);
}, false);

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2020-03-18 22:03:05

如果您像这样将回调参数传递给您的函数,那么它应该可以工作

代码语言:javascript
复制
el.addEventListener('keydown', function (event) {
   negativeNum(event);
}, false);

你可以像这样使用你的函数作为回调函数:

代码语言:javascript
复制
 el.addEventListener('keydown', negativeNum, false);
票数 4
EN

Stack Overflow用户

发布于 2020-03-18 22:17:08

代码语言:javascript
复制
function negativeNum(e) {
  if(!((e.keyCode > 95 && e.keyCode < 106) || (e.keyCode > 47 && e.keyCode < 58) || e.keyCode == 8)) {
    e.preventDefault();
  }
}


el.addEventListener('keydown', negativeNum, false);

有关此here的更多信息

票数 0
EN

Stack Overflow用户

发布于 2020-03-18 22:40:23

1个el.onkeydown = function (e) {}

一个超文本标记语言对象有一个不同的事件作为它的键,默认情况下el.onkeydown是空的&后来我们用一个fn覆盖了它,这里的fn可以返回true / false

如果你返回false,它基本上做了3件事:

代码语言:javascript
复制
[A] event.preventDefault();
[B] event.stopPropagation();
[C] stops execution and returns immediately

2个el.addEventListener('keydown', function () {})

__proto__对象的深层,你可以找到addEventListener,它接受一个回调fn作为第二个参数。

如果你从这个callback fn返回任何东西,return值将被父fn收集。addEventListener &不会有像1中那样的效果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60741139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档