javascript - 如何区分vue中的@click和@keyup.enter?
问题描述
我有以下按钮:
<button @click="toggleModal" @keydown.enter="toggleModalWithFocusTrap">
在我看来,在 vue 中这两个事件都是等价的click
。enter
这导致我遇到两个事件toggleModal
同时toggleModalWithFocusTrap
被调用的问题,这会立即关闭模式,因为this.showModal = !this.showModal
设置为true
第一个,然后false
立即设置为。
因此,我的问题是如何确定事件是由鼠标单击还是在键盘上按 Enter 触发的。
解决方案
在事件处理程序中添加代表事件的参数,然后从type
属性中获取事件名称:
toggleModal(event){
if(event.type==='click'){
// do some stuff
}else if(event.type==='keydown'){
// do other stuff
}
}
推荐阅读
- excel - 根据 x x y 单元格值填充单元格
- mysql - 使用 node.js 将 JSON 写入 mysql 数据库
- sql - 在 LEFT JOIN oracle 中使用 NVL?
- xml - 我无法再使用 access 中的导入工具将 XML 文件导入 access
- r - 将长标题转换为多列 HTML 表格
- python - 在使用“pip install --no-index --find-links="时,我收到错误提示“您必须至少给出一个安装要求”
- apache-spark - Spark 结构化流式处理:GroupStateTimeout 的 java.lang.NoClassDefFoundError
- javascript - Node JS - Socket.io-client 不能正常工作
- javascript - 获取在 if 语句中被拖动的元素的 id
- php - PHP函数根据月份的日期和时间显示不同的图像