首页 > 解决方案 > javascript - 检查函数执行计数并使其执行不超过一次

问题描述

我使用了一个插件“isInViewport js”,它可以让您知道元素何时在视口中,并让您在发生这种情况时执行某些操作。

所以我写了一个计数函数,它是一个数字计数器函数。当一个元素在视口中时执行。

但是每次元素进入视口时,这个计数函数都会开始执行。我希望这个函数执行不超过一次。

这是我编写的代码,运行良好,但与我预期的不同:

$('.earn').on('inview', function (event, visible) {
        console.log('inview');

          if (visible == true) {
        console.log('inview count');

            counting();

          } else {
            $('#counter').text(0);
            $('#counter2').text(0+"$");
          }
        });

我正在寻找的 pusdocode 是:

if(count of function == 0){
  executeFunction();
}
else{

}

有人可以通过javascript或jquery为此提供解决方案吗?

标签: javascriptjqueryhtmlfunctionlogic

解决方案


如果您只需要counting运行一次,您可以在inview处理程序中执行类似的操作。

if (visible == true) {
  console.log('inview count');
  if (!this.is_counted) { // 'this' should refer to your element.earn
    counting();
    this.is_counted = true;
  }
}

推荐阅读