ajax刷新div后,SlideToggle不起作用

时间:2017-07-06 12:38:31

标签: javascript jquery ajax

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

1 个答案:

答案 0 :(得分:0)

一旦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();
    });
}