gpt4 book ai didi

jquery - jQuery 中的 if 语句总是返回 true

转载 作者:行者123 更新时间:2023-12-01 04:48:31 26 4
gpt4 key购买 nike

有人提出了类似的问题,但我在这些主题中找不到任何帮助。

看看this fiddle 。右侧有一个菜单,可让您滚动到其他部分。

应该发生的情况是,例如,当您单击“3”时,菜单中的“3”会使类“可见”(以较大的字体大小显示)。然而,由于某种原因,第一个列表项总是获得此类。我认为发生这种情况是因为在下面的 if 语句中,第一个 div 因偏移量为零而被评估为 true,这是不正确的。

    $("body > div").each(function () {
var $this = $(this),
nextSection = $this.next("div"),
offsetT = $this.offset().top;
if (offsetT == 0) {
$("nav a").removeClass("visible");
$("a#" + $this.attr("id") + "-button").addClass("visible");
console.log("a#" + $this.attr("id") + "-button");
}
});

另一种解释可能是由于函数被作为回调调用而出现问题。我这样做是故意的,因为当它被作为回调调用时,应该没有动画留下,并且容器应该被捕捉到窗口的顶部:所以只能有一个元素具有 offset == 0。但正如您所看到的,这不起作用。

该类必须在 SnapIt 函数内部设置,因为该函数也在其他地方使用。

Where did I go wrong?

最佳答案

我认为您希望在滚动时选择正确的数字,然后您需要更改:
if (offsetT == 0)if (offsetT == posToScroll)

Fiddle

理性

if (offsetT == 0) 将始终选择菜单项 1,因为该菜单项的偏移量为 0。将 if 语句更改为 if (offsetT == posToScroll) code> 表示选择窗口已滚动到的那个。

关于jquery - jQuery 中的 if 语句总是返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24806263/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com