javascript - ajax刷新div后SlideToggle不起作用

标签 javascript jquery ajax

现在我已经设置了slideToggle 函数,它运行良好。但在我过滤结果后,幻灯片不再起作用了。在此页面上您可以看到它:https://staging.therapeutischefrauenmassage.de/therapeutinnen/
通过单击单选按钮过滤结果后,幻灯片根本不会滑动。有什么问题吗?该代码将毫无用处,因为 ajax 会加载该文件,该文件之前已包含并有效...

最佳答案

一旦 ajax 加载该部分,您可能需要重新附加事件监听器(例如 on(click,...) 等)。由于它们是 DOM 的新手,因此不会附加这些监听器。

您可以在 ajax 加载末尾添加一个步骤,用于分离并重新附加相关监听器。

<小时/>

后续:

这是您当前的代码:

$('.show').click(function() {
    $(this).closest('h3').next('.slidetoggle').slideToggle();
});

执行此操作可以清除任何剩余的链接事件处理程序(因为我们稍后会将它们添加回来):

$('.show').off();

然后我会以这种方式重做点击处理程序(我更喜欢使用“on”语法,因为它与“off”配合得很好):

$('.show').on('click', function() {
    $(this).closest('h3').next('.slidetoggle').slideToggle();
});

您可以将两者都插入一个函数中,如下所示:

function relinkEvents() {
    $('.show').off();
    $('.show').on('click', function() {
        $(this).closest('h3').next('.slidetoggle').slideToggle();
    });
}

关于javascript - ajax刷新div后SlideToggle不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44949119/

相关文章:

javascript - 使用 AJAX 将变量从 Javascript 传递到 PHP

使用ajax的Javascript和php : why is the php not called?

Javascript 函数,我怎样才能开始理解它们?

javascript - jQuery 等高列 - 列间歇性地打破 DOM 之外

javascript - 当条件中有 "return"时,我可以使用三元运算符吗?

c# - 带有更新面板的 jquery

javascript - jquery 输入尾部斜杠之谜(消失了!)

ajax - ASP.NET 4.0 路由 + ajax + 浏览器历史记录

javascript - 多边形碰撞检测实现

Javascript 重新加载页面