You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求简化重复的jQuery标签点击动画代码

jQuery代码简化方案

方案一:不修改HTML结构,直接简化JS

// 统一绑定所有标签的点击事件
jQuery("#state-of-the-art .fl-tabs-label, #everything-you-need .fl-tabs-label, #monitor-your-sites .fl-tabs-label").click(function() {
  // 找到当前点击标签所在的父容器
  const $container = jQuery(this).closest('[id]');
  // 调用通用动画函数处理对应面板
  animateTabPanel($container.find('.fl-tabs-panel'));
});

// 提取通用的动画逻辑函数
function animateTabPanel($panel) {
  $panel.addClass("tab-animation-fadeup");
  setTimeout(function () {
    $panel.removeClass("tab-animation-fadeup");
  }, 400);
}

方案二:给容器加公共类(更优雅,推荐)

如果可以修改HTML,给三个带ID的容器都加一个公共类(比如tab-group):

<div id="state-of-the-art" class="tab-group">...</div>
<div id="everything-you-need" class="tab-group">...</div>
<div id="monitor-your-sites" class="tab-group">...</div>

对应的JS代码会更简洁:

// 绑定所有tab-group下的标签点击事件
jQuery(".tab-group .fl-tabs-label").click(function() {
  const $panel = jQuery(this).closest('.tab-group').find('.fl-tabs-panel');
  animateTabPanel($panel);
});

function animateTabPanel($panel) {
  $panel.addClass("tab-animation-fadeup");
  setTimeout(() => $panel.removeClass("tab-animation-fadeup"), 400);
}

简化思路说明

  • 统一事件绑定:把多个重复的click事件合并成一个,避免冗余代码
  • 利用DOM关系定位元素:不再硬编码每个容器ID,通过closest()找到当前点击元素的父容器,再定位到对应的面板,后续新增tab组无需修改JS
  • 提取通用逻辑:把重复的动画操作封装成独立函数,复用代码的同时,也方便后续统一调整动画细节(比如延迟时间、类名)

内容的提问来源于stack exchange,提问作者Jeric G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 01:57:15