【问题标题】:Jquery new div fadIn effect by reloading a divjquery new div fadIn 效果通过重新加载一个 div
【发布时间】:2013-01-22 17:48:28
【问题描述】:

我有一个 div“内容”,在这个 div 中我有几个 div“评论”,我每 5 秒重新加载一次 div“内容”,我想在每个新的 cmets 中淡入淡出。为此,每条评论都有一个整数 id,所以基本上我正在做的是: 我将最后一条评论的 id 保存在变量“lastComment”中,当我重新加载 div“内容”时,我正在使用 if($(".comment").attr(id) > lastComment) {警报('ok')}

但它不起作用,首先它重新加载 div,而不是直接说“好的”,我需要再等 5 秒,这里是我的代码:

var lastComment = $('.comment:last').attr('id');
setInterval(function()
{
    $('#content').load('fullscreen.php?image='+$('.imageBig').attr('id')+' #content');
    if($('.comment').attr('id') > lastComment){
        alert('ok');
    }
}, 5000);

有什么想法吗?

【问题讨论】:

  • 您可能不想在您的用例中使用.load(),因为它已经设计为在 AJAX 完成时自动更改/删除 HTML 元素中的内容。您应该考虑使用低级别并调用 $.ajax() 来代替自定义逻辑。

标签: jquery html fadein reload


【解决方案1】:

我认为你的jQuery selector 有问题,在 if 条件下你应该指定最后一个div.comment,因为var lastComment = $('.comment:last').attr('id'); 语句将在此setInterval 工作后分配最后一个元素,并且新的最后一个 div 注释将更改,因此请注意不要有效。

var lastComment = $('.comment:last').attr('id');
setInterval(function()
{
    $('#content').load('fullscreen.php?image='+$('.imageBig').attr('id'),function(){
        if($('.comment:last').attr('id') > lastComment){
            alert('ok');
        }
    });

}, 5000);

【讨论】:

  • 如果您将if 语句放在加载回调中,那么它将执行他想要的操作,而无需在加载后等待 5 秒 ;)
  • 欢迎......@GradislavaBikkulova
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-03
  • 1970-01-01
  • 2013-09-01
  • 1970-01-01
  • 2011-10-18
  • 1970-01-01
  • 2012-07-17
相关资源
最近更新 更多