我正在通过以下代码更新用户帖子:
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点击停止。
我的代码有错误吗?任何帮助将不胜感激。
答案 0 :(得分:2)
点击不会触发,因为在你绑定它们的时候没有textareas或后者被替换为新的textareas。这些新的textareas没有附加onclick处理程序。
您可以执行以下任一操作:
将onclick="clearInterval(auto_refresh);"
添加到后端发送的textarea代码中,并获取类似内容:
<textarea onclick="clearInterval(auto_refresh);"></textarea>
使用on
将点击处理程序绑定到页面上保留的更高元素,如下所示:
$(".contenido-publicaciones").on('click', 'textarea', function(){
clearInterval(auto_refresh);
});
答案 1 :(得分:0)
据我所知,您加载的内容包含您尝试通过单击处理的所有节点。
如果是这样的话。有一个问题。因为每次更新时都会松散单击处理程序,因为DOM已更改。 as +你可能从以前的“无法访问”处理程序中发现了内存泄漏