gpt4 book ai didi

Javascript 逻辑 在循环/if 语句中

转载 作者:行者123 更新时间:2023-11-28 08:48:56 25 4
gpt4 key购买 nike

我有这个函数(transComplete),它执行突出显示相关指示器的任务,向用户显示他们所在的页面,这些 Controller /指示器的每个元素代表一个页面,并将适本地突出显示。

这是独立工作的,但是当我引入一个点击功能时,该功能允许与指示器交互以在页面之间移动,它可以正确导航,但不会根据需要突出显示(仅每两次点击一次),这让我相信这是我的逻辑问题代码。

真正/错误的 bool 逻辑是原因,突出显示仅发生在变量“isOnSecond”的“true”情况下,因此我本质上需要一个在单击时始终突出显示相关 Controller 的解决方案

主要功能如下:

函数 transComplete() {

slideTransStep = 0;
crtSlideIndex = nextSlideIndex;
// for IE filters, removing filters re-enables cleartype
if (nextSlide.style.removeAttribute) {
nextSlide.style.removeAttribute("filter");

// show next slide
showSlide((crtSlideIndex >= totalSlides) ? 1 : crtSlideIndex + 1);

//Highlights a nav circle every two transitions as the boolean alternates
if (isOnSecond == true) {

//unhighlight all controls
for (var i = 0; i < slidesControllersCollection.length; i++) {
if (slidesControllersCollection[i].className === slideHighlightClass) {
slidesControllersCollection[i].className = "";
}
// highlight the control for the next slide
document.getElementById("slide-control-" + crtSlideIndex).className = slideHighlightClass;
}
isOnSecond = false;
}
else {
isOnSecond = true;
}
}

onclick 函数:

 function clickSlide(control) {

showSlide(Number(control.id.substr(control.id.lastIndexOf("-")+1)),true);
}

最佳答案

我认为当您仍在从一页迭代到下一页时,您就创建了 trans 函数,现在用户可以转到任何帧,您需要每次清除任何突出显示,然后再次将其放在当前帧上。

或者更确切地说,为了提高性能,存储最后突出显示的内容,然后突出显示新的内容。

但是...为什么不直接删除“onSecond”逻辑呢?对于用户来说,仅获得两次以上的突出显示没有多大意义......

无论如何,如果你保留 onSecond 的想法,逻辑将是:

if (lastHighlighted) lastHighlighted.className = ""; 

if (isOnSecond) {
lastHighLighted = document.getElementById("slide-control-" + crtSlideIndex);
lastHighLighted.className = slideHighlightClass;
} else {
lastHighLighted = null;
}

isOnSecond = ! isOnSecond;

但事实上我想知道你想要的是否不是没有 onSecond 逻辑的版本:

if (lastHighlighted) lastHighlighted.className = ""; 

lastHighLighted = document.getElementById("slide-control-" + crtSlideIndex);
lastHighLighted.className = slideHighlightClass;

(Rq将lastHighlighted声明为var,这样它就可以在transComplete的范围内)

关于Javascript 逻辑 在循环/if 语句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19398757/

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