设置全局变量内部访问功能



如何更改全局变量内部称为debounce函数。这是什么意思 - 有人可以解释" debounce"。JavaScript中的功能

function debounce(func, wait) {
  var timeout;
  return function () {
    var content = this, args = arguments;
    var later = function() {
      timeout = null;
      func.apply(content, args);
    };
    clearTimeout(timeout);
    timeout = setTimeout(later, wait);
  };
}
var MANIPULATEDWPAGE = false;
function manipulatedwpage() {
  if (!MANIPULATEDWPAGE) {
     //MY CODE
     MANIPULATEDWPAGE = true; //only ones during debounce process
  }
}
window.addEventListener('resize', manipulatedwpage());
window.addEventListener('scroll', manipulatedwpage());
function calldeb() {
    //code after debounce done
    MANIPULATEDWPAGE = false;
    // <--- PROBLEM --- MANIPULATEDWPAGE is not changed
}
var debvar = debounce(calldeb, 2000);
window.addEventListener('resize', debvar);
window.addEventListener('scroll', debvar); 

这是您的代码正在运行的操作,简化为无控制流语句的操作:

var MANIPULATEDWPAGE = false; // initial declaration
MANIPULATEDWPAGE = true; // run from function manipulatedwpage()
MANIPULATEDWPAGE = false; // run from debvar

您在resizescroll事件上都有两个处理程序。其中一个将您的全局设置为True,然后另一个将其设置为true,并立即将其设置为false,使其看起来与原始状态没有变化。

最新更新