javascript - JS/jQuery – 在循环内检查初始位置(滚动事件)

标签 javascript jquery variables global local

编辑

var setInitPos = true;

function loop() {

  $(".image").each(function() {
    // some other code

    if (imageIsVisible) {
      // some other code

      // Set variable initPos only once for each item
      if (setInitPos) {
        initPos = $(window).scrollTop();
        setInitPos = false;
      }
    }

    // some other code
  })

}

$(window).scroll(function(){ loop() }

如果某个项目在视口(viewport)中可见,则使用每个项目的值填充 var initPos 一次。

但是现在第二项以 setInitPos = false 开头!这是为什么?

最佳答案

它是全局的,因为您在全局范围内指定了它。

要使其成为迭代的本地变量,然后在函数内声明它。为此,您需要使用 varb 关键字(如果您使用 ES6,则需要使用 let)

要使其成为图像的本地属性,请使用 this.initPos,这样您就可以为每个图像元素创建一个新属性。

关于javascript - JS/jQuery – 在循环内检查初始位置(滚动事件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37275685/

相关文章:

javascript promise 处理,无法处理错误

java - 找不到符号 - 变量

Android 避免创建新对象

javascript - 格式化后将文本 chop 为特定行数

javascript - jS : On click function add number to variable - gives NaN

javascript - 如何根据节点点击到达 URL?

javascript - ScrollTop Jquery 无法正常工作

javascript - 在 HTML、CSS 和 Javascript 或 Jquery Apple iOS 上单击文本框

javascript - Facebook 忽略了共享 URL 中我的部分查询字符串

c++ - C++查询类的静态成员变量