Jquery 当我执行AJAX调用来更改查询集时,JS停止处理子模板

Jquery 当我执行AJAX调用来更改查询集时,JS停止处理子模板,jquery,python,ajax,django,django-templates,Jquery,Python,Ajax,Django,Django Templates,我的comments.html子模板如下所示: <div class="commentsContainer"> {% for comment in comment_list %} ... {{ comment.text }} ... {% endfor %} </div> 调用此视图以更改查询集(初始查询集是comment\u list=comment.objects.filter().order\u b

我的
comments.html
子模板如下所示:

<div class="commentsContainer">
    {% for comment in comment_list %} 

    ...


        {{ comment.text }} 

    ...

    {%  endfor %}

</div>
调用此视图以更改查询集(初始查询集是
comment\u list=comment.objects.filter().order\u by('-score\u upvows')

这成功地交换了queryset,但是由于某些原因,没有javascript在新加载的模板/queryset上工作。有人能告诉我为什么会发生这种情况以及如何修复它吗


PS:调用时,有时在我的终端中会出现以下错误:
UserWarning:A{%csrf\u token%}已在模板中使用,但上下文未提供值。这通常是由于未使用RequestContext造成的。

Javascript控制台中有错误吗?JS控制台中没有错误我猜
replaceWith
也会擦除事件处理程序。它们可能需要重新附加。这取决于JS代码所在的位置。因为它是JAX请求您第一次单击将起作用,因为DOM已被解析并侦听事件。但是,第二次,因为DOM已更改,并且当您单击按钮时不会触发
onReady
事件。换句话说,您的js(AJAX函数)代码应该存在于子模板中。现在每次替换
div
时,
click
事件监听器都将是一个新的监听器。这是有道理的。这将很困难,因为我有许多偶数处理程序附加到注释,所以我是否将它们全部复制到注释模板中?或者您认为有可能复制到某个注释模板中w链接(
)注释模板中的相同JS文件?
$('.comments_new').on('click', function() {
    $.ajax({
        type: 'GET',
        url: '/new_comments/',
        data: {
        },
        success: function (data) {
            $('.commentsContainer ').replaceWith(data);
        }
    })
});
def new_comments(request):
    if request.is_ajax():
        comment_list = Comment.objects.filter().order_by('-timestamp')
         html = {'comment_list': render_to_string('comments.html', {'comment_list': comment_list})}

         return JsonResponse(html)