点击切换随机引语div时如何排除当前项 避免连续展示同一条内容
解决方案
核心逻辑非常简单:新增一个变量存储上一次展示的引语索引,每次生成新的随机索引时做校验,只要和上一次索引相同就重新生成,直到得到不同的索引即可,完全不需要调整你现有的HTML和CSS代码,仅修改JS部分就行。
修改后的完整JS代码
// 存储上一次展示的引语索引,初始值设为-1避免第一次生成随机数时命中 let lastQuoteIndex = -1; function changequote() { const totalQuotes = $('.quote').length; let randomIndex; // 循环生成随机数,直到得到和上一次不同的索引 do { randomIndex = Math.floor(Math.random() * totalQuotes); } while (randomIndex === lastQuoteIndex); // 更新上一次索引为当前使用的索引 lastQuoteIndex = randomIndex; $('.quote').hide().eq(randomIndex).fadeTo(500, 1); }
补充说明
你原有代码里的window.onload = changequote()存在微小的逻辑问题,这里是把changequote的执行结果赋值给了window.onload,而不是把函数本身绑定为加载回调,如果你实际运行时出现首次加载没有正常展示引语的情况,可以修改为window.onload = changequote即可。
内容的提问来源于stack exchange,提问作者tez
相关产品推荐
相关产品推荐

