如何将局部变量值从函数传递到AddEventListener函数



如何将局部变量值从函数传递到addeventListener函数?

这是例如代码(JavaScript),

function f(){
   var x = new Audio('Audio URL')
   var divID = document.getElementById('id of a div');
   if(divID){
      divID.addEventListener("webkitAnimationEnd",g);
      divID.addEventListener("animationend",g);
  }
}

function g(){
    //Code that uses variable x value and functions i.e x.pause() or x.play()
}

如何将函数中的变量x值传递给addeventListener中的函数g()?

您可以尝试以下操作:

function f(){
   var x = new Audio('Audio URL')
   var divID = document.getElementById('id of a div');
   if(divID){
      divID.addEventListener(webkitAnimationEnd, () => g(x));
      divID.addEventListener(animationend, () => g(x));
  }
}

function g(x){
    //Code that uses variable x value and functions i.e x.pause() or x.play()
}

或,如果您想要ES5支持,则divID.addEventListener(webkitAnimationEnd, function() { g(x); });

可能会在封闭中进行此操作:

function f(){
   var x = new Audio('Audio URL')
   var divID = document.getElementById('id of a div');
   if(divID){
      divID.addEventListener(webkitAnimationEnd, makeG(x));
      divID.addEventListener(animationend, makeG(x));
  }
}
function makeG(x) {
    return function() {
        //Code that uses variable x value and functions i.e x.pause() or x.play()
    }
}

最新更新