javascript - 有没有一种方法可以同时添加 onkeypress 和 onclick 事件监听器?

标签 javascript html addeventlistener

我有两个问题,有些相关。

1) 可以将下面的 2 个函数组合成 1 个更精简的函数,或者我必须简单地创建一个函数并在两个事件监听器中调用它

input.addEventListener("keyup", () => {
   if (event.keyCode === 13) {
     // code here 
}

input.addEventListener("click", () => {
     // code here 
}

但这本质上是重复代码

2) 有没有办法根据数组的内容制作一种简单/基本的自动完成菜单(类似于谷歌,但远不及它强大)?在输入/搜索栏中输入时?为澄清起见,w3schools 示例对我不起作用。

最佳答案

这是将多个事件附加到单个元素的方法。 作为引用,您可以查看 mozilladocs

var elem = document.querySelector('input')

elem.addEventListener('keyup', eventhandler, false);
//elem.addEventListener('click', eventhandler, false);// not sure about this event
elem.addEventListener('keydown', eventhandler, false);

function eventhandler(event) {
     if (event.keyCode === 13) { // you press enter you get alert 
     
        alert("hi");
     }
}
<input type="text" id="field">

关于javascript - 有没有一种方法可以同时添加 onkeypress 和 onclick 事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55931622/

相关文章:

javascript - 滚动时卡住所选元素

javascript - 将数据从javascript表单传递到Flask服务器

html - 如何在图像元素上获得绝对定位?

javascript - 使用复选框启用或禁用输入字段

javascript - 如何使用 AngularJS 将数组转换为字符串 url?

具有多个语句的 JavaScript 函数无法正常工作

javascript - 如何限制图片上传的大小?如果超过限制大小则显示消息?

javascript - 事件监听器中的匿名函数与在事件监听器中运行的匿名函数

jquery - youtube视频结束时触发

javascript - 如何用addEventListener替换@click,让addEventListener像@click一样灵活?