ClearInterval()不工作任何人都知道为什么?

时间:2014-01-31 23:47:15

标签: 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:<div class="contenido-publicaciones">,来自refresh.p.php的所有<div class="this-is-a-post"> div每2.5秒加载一次。

2:我在<div class="this-is-a-post">内刷新了refresh_p.php内的textarea标记。

3:当<div class="contenido-publicaciones">刷新时,它还会刷新textarea并阻止用户输入。

4:所有textareas都有类b_green

当用户点击类clearInterval(auto_refresh)的textarea时,我想b_green,以便其他用户可以向该帖子发送评论。

我尝试了以下内容:

$(".b_green").click(function(){ clearInterval(auto_refresh); }); //无效,<div class="contenido-publicaciones">不断刷新。

$("textarea").click(function(){ clearInterval(auto_refresh); }); //仅当我单击页面顶部的文本区域发送帖子时才有效,但是当我点击类b_green的文本区域时不起作用。

$(this).click(function(){ clearInterval(auto_refresh); }); //如果我点击b_green textareas,但是在用户在页面上执行的每次点击停止间隔时,这都有效,我只想在b_green textareas点击停止。

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

2 个答案:

答案 0 :(得分:2)

点击不会触发,因为在你绑定它们的时候没有textareas或后者被替换为新的textareas。这些新的textareas没有附加onclick处理程序。

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

  1. onclick="clearInterval(auto_refresh);"添加到后端发送的textarea代码中,并获取类似内容:

    <textarea onclick="clearInterval(auto_refresh);"></textarea>
    
  2. 使用on将点击处理程序绑定到页面上保留的更高元素,如下所示:

    $(".contenido-publicaciones").on('click', 'textarea', function(){
        clearInterval(auto_refresh);
    });
    

答案 1 :(得分:0)

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

如果是这样的话。有一个问题。因为每次更新时都会松散单击处理程序,因为DOM已更改。 as +你可能从以前的“无法访问”处理程序中发现了内存泄漏