繁体   English   中英

的JavaScript-AddEventListener到本地范围内的函数?

[英]JavaScript - AddEventListener to a function in a local scope?

我有一组需要全局变量的函数,并且为了不污染全局名称空间,我一直在尝试寻找一种本地化它们的方法。 但是,我也想通过事件监听器从外部触发它们。 如果有一天我想删除该事件监听器,我不希望在事件监听器中不使用匿名函数。

(我无法了解具有匿名函数的事件侦听器是否会自动破坏函数本身的方式,或者它们是否留在页面中直到重新加载。)

这就是我所拥有的(不起作用)。

我想要这个工作:

window.onload = function() {
  document.addEventListener('mousewheel', scrollthis.scrolldown, false);
}

var scrollthis() {
  function scrolldown() {
    // code that does stuff
  }
  return  {
    scrolldown:scrolldown
  }
}

有任何想法吗?

现在, scrollthis是一个函数,您正在尝试像对象一样使用它。 您有两种选择:

您可以将scrollthis对象:

window.onload = function() {
  document.addEventListener('mousewheel', scrollthis.scrolldown, false);
}

var scrollthis = {
  scrolldown: function () {
    // code that does stuff
  }
}

或者你可以拨打scrollthis试图访问之前功能scrolldown温控功能:

window.onload = function() {
  document.addEventListener('mousewheel', scrollthis().scrolldown, false);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM