Java脚本添加事件侦听器

时间:2018-06-10 16:49:26

标签: javascript event-handling

我试图附加一个事件监听器,但不是像'click'这样的事件,而是当变量满足某个条件时我想要它。例如:

let x = 1;
let y = 2;

const myObject = document.getElementById('myObject')

myObject.addEventListener('x==3 && y == 4', function() {
}

如果没有在函数中使用if语句,我不确定这是否可行,但也许你们有一个解决方案或解决方法?在此先感谢:)

1 个答案:

答案 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>