如何判断每个链接是否为首次点击 解决jQuery点击计数异常问题
解决方案
核心逻辑是使用jQuery提供的.data()方法为每个链接元素独立存储点击状态,替换全局计数变量,实现单个链接的首次点击状态互不干扰。
修改后的JS代码如下:
$('.menu>li>a').on('click', function(e) { e.preventDefault(); const $this = $(this); // 仅当前链接未触发过首次点击时执行专属逻辑 if (!$this.data('isFirstClicked')) { $('.loader').show(); setTimeout(function() { $('.loader').hide(); }, 5000); // 标记当前链接已完成首次点击 $this.data('isFirstClicked', true); } // 所有点击场景统一执行下拉激活逻辑 $this.next('.dropdown').addClass('active'); });
实现优势
- 所有链接的点击状态独立存储,点击A链接后再点击B链接,依然会正常触发B链接的首次加载逻辑
- 合并重复的下拉激活代码,减少冗余
- 无需维护全局计数变量,避免全局变量污染和计数错误
内容的提问来源于stack exchange,提问作者ven
相关产品推荐
相关产品推荐

