我觉得我在这里犯了一个非常简单的错误。本质上,我只是尝试从自执行函数中的另一个函数访问一个函数。为什么没有任何原因叫printConfirmation?似乎eventHandlers也不能正常工作。

(function(){

  var targetZone = document.getElementById('target-zone');

  var eventHandlers = function(){
    targetZone.addEventListener('click', printConfirmation);
  };

  var printConfirmation = function(){
    targetZone = targetZone.classList;
    targetZone.add('clicked');
  };

})();

最佳答案

这是一个悬而未决的问题,更改为函数声明而不是函数表达式,它将起作用:

(function(){

  var targetZone = document.getElementById('target-zone');

  function eventHandlers(){
    targetZone.addEventListener('click', printConfirmation);
  }

  function printConfirmation(){
    targetZone = targetZone.classList;
    targetZone.add('clicked');
  }

  eventHandlers();
})();


编辑:而且,正如丹尼尔指出的那样,您需要实际调用eventHandlers()

关于javascript - 访问自执行功能中的同级功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42846786/

10-09 15:30