javascript - 如何在多个事件上运行一个函数?
问题描述
当两个变量触发事件时,我想运行一个函数。我尝试了多种方法,但没有任何效果。可能吗?
如果需要,这是我试图为您提供进一步说明的内容:
function run(arg) {
...
}
let e = false
event1.on('event', pass => { if (e) { run(pass) } else { e = true } })
event2.on('event', pass => { if (e) { run(pass) } else { e = true } })
function run(arg) {
...
}
[event1, event2].on('event', pass => { run(pass) } )
function run(arg) {
...
}
(event1 && event2).on('event', pass => { run(pass) } )
到目前为止,没有任何效果。我只希望函数在两个事件都被触发时运行。我怎么能这样做?
解决方案
首先创建一个数组,在每个事件触发器上添加事件确实被触发的数组索引。
完成后,只需检查数组内部是否包含两个事件,然后启动运行函数。
var array = [];
function event1(){
array.push("event1");
}
function event2(){
array.push("event2");
}
//Check if array have 2 events triggered
if(array.some(val => val === "event1") && array.some(val => val === "event2")){
run(pass);
}
推荐阅读
- html - 让元素在不同的时间闪耀
- android - 回收器视图适配器不工作
- docker - rexray 是否支持多主机卷挂载?
- java - 如何使用 java/scala 获取 pdf 文件的字形?
- postgresql - 用户 postgres 启动占用所有 CPU 100% 使用率的进程
- laravel - 将应用程序从 Homestead 移动/迁移到 Valet
- c++ - constexpr 在非常量成员函数上的用途是什么?
- css - 使用 css 表更改按钮的颜色并保持发光
- html - HTML:为什么视频封面超出了它的底部边框?
- php - 在 Laravel 中删除行和插入行的最佳方法是什么