我试图附加一个事件监听器,但不是像'click'这样的事件,而是当变量满足某个条件时我想要它。例如:
let x = 1;
let y = 2;
const myObject = document.getElementById('myObject')
myObject.addEventListener('x==3 && y == 4', function() {
}
如果没有在函数中使用if语句,我不确定这是否可行,但也许你们有一个解决方案或解决方法?在此先感谢:)
答案 0 :(得分:1)
我不确定你的myObject
元素如何知道x和y的值是什么,但你可以将事件监听器添加到导致更改为x或y的某个元素的id中,并运行一个检查其值的函数。如果要在x和y达到所需值时触发完全不同的事件,只需在if语句中调用一个函数来检查所需的值。如果x或y达到10,此示例将重置值。希望这在某种程度上有所帮助!
const xElem = document.getElementById('x');
const yElem = document.getElementById('y');
let x = 0;
let y = 0;
xElem.addEventListener('click', changeFunction);
yElem.addEventListener('click', changeFunction);
function changeX(){
x++;
xElem.innerHTML = `x = ${x}`;
}
function changeY(){
y++;
yElem.innerHTML = `y = ${y}`;
}
function changeFunction() {
if(x == 3 && y == 4){
alert('there you have it!');
}
if(x == 10 || y == 10){
doThisOtherThing()
}
}
function doThisOtherThing() {
alert('reset');
x = 0;
y = 0;
xElem.innerHTML = 'change x';
yElem.innerHTML = 'change y';
}
<div>
<button id="x" onClick="changeX()">change x</button>
<button id="y" onClick="changeY()">change y</button>
</div>