Javascript ClearInterval()不工作,谁知道为什么?

Javascript ClearInterval()不工作,谁知道为什么?,javascript,php,jquery,html,css,Javascript,Php,Jquery,Html,Css,我正在通过以下代码更新用户帖子: var auto_refresh = setInterval(function() { $('.contenido-publicaciones') .load("refresh_p.php?search_user="+search_user).fadeIn(); }, 2500 ); //Which is working. 1:,refresh.p.php中的所有div每2.5秒加载一次 2:对于从refresh\u p.php刷新的

我正在通过以下代码更新用户帖子:

var auto_refresh = setInterval(function() 
{
    $('.contenido-publicaciones')
        .load("refresh_p.php?search_user="+search_user).fadeIn();
}, 2500 ); //Which is working.
1:
,refresh.p.php中的所有
div每2.5秒加载一次

2:对于从
refresh\u p.php
刷新的每个
,我都有一个textarea标签

3:当
刷新时,它也会刷新文本区域并防止用户键入

4:所有文本区域都有绿色类
b_

我想在用户单击类为
b_绿色的文本区域时
clearInterval(auto_refresh)
,以便其他用户可以向该帖子发送评论

我尝试了以下方法:

$(.b_绿色”)。单击(函数(){
clearInterval(自动刷新);
});//不工作,
继续刷新

$(“文本区域”)。单击(函数(){
clearInterval(自动刷新);
});//仅当我单击页面顶部用于发送帖子的文本区域时有效,但当我单击b_类为绿色的文本区域时无效

$(此)。单击(函数(){
clearInterval(自动刷新);
});//如果我单击b_绿色文本区域,但停止用户在页面上每次单击的间隔,我只想停止b_绿色文本区域单击,则此操作有效


我的代码有错误吗?任何帮助都将不胜感激。

据我所知,您加载的内容包含您试图通过单击来处理的所有节点


如果是的话。有一个问题。因为每次获得更新时,都会松开单击处理程序,因为DOM已经更改。由于+您可能从以前的“不可访问”处理程序中出现内存泄漏,因此不会触发单击,因为在绑定它们时没有文本区域,或者其中的文本区域已被新文本区域替换。这些新文本区域没有连接onclick处理程序

您可以执行以下任一操作:

  • onclick=“clearInterval(auto_refresh);”
    添加到后端发送的文本区域的代码中,并获得如下结果:

    <textarea onclick="clearInterval(auto_refresh);"></textarea>
    

  • 您的
    var自动刷新
    分配的范围是什么?窗口是本地的还是全局的看起来您需要使用委派,因为正在动态添加
    .b_green
    text区域。用于从静态父级委派事件。我还认为您遗漏了一些重要的代码。设置间隔计时器的第一个代码块具体在哪里?任何无法访问的代码的可能副本都会被垃圾收集,我建议你用谷歌搜索。如何使用设置的间隔和处理程序进行内存泄漏。你会非常惊讶的。
    $(".contenido-publicaciones").on('click', 'textarea', function(){
        clearInterval(auto_refresh);
    });