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

Ajax调用后jQuery侧边栏筛选下拉菜单点击失效如何解决

问题根因

当前代码的事件绑定仅对页面初始加载完成时就存在的DOM元素生效。触发Ajax刷新侧边栏筛选内容后,新渲染生成的h3、h4标题元素没有被绑定点击事件,因此下拉交互失效。

修复方法

使用事件委托机制,将点击事件绑定到不会被Ajax刷新销毁的静态祖先节点上,即可让动态生成的元素也能响应点击逻辑,修改后代码如下:

jQuery(function(){
    // 若确认#sidebar节点本身不会被Ajax替换,可将document替换为'#sidebar'获得更好的性能
    jQuery(document).on(
        'click',
        "#sidebar h4, #sidebar h3, body.woocommerce #sidebar>div>.inner .widget h4, body.woocommerce #sidebar>div>.inner .widget h3",
        function(){
            jQuery(this).parent().toggleClass("dropdown-hide");
        }
    );
});
注意事项
  • 禁止在Ajax请求的success回调中重复绑定该点击事件,否则会出现单次点击触发多次类名切换的异常。
  • 委托绑定的祖先节点层级越靠近目标元素,事件冒泡路径越短,运行性能越好。

内容的提问来源于stack exchange,提问作者farhat khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 17:06:28