0

我有一个每 30 秒刷新一次的 div,如果它是新内容(由 cookie 检查),我也有闪烁的文本。

setInterval(function() {
    $('#reload').load('/page.php #reload'), function() {}
}, 30000);

// check if atis cookie exits
var Key = $("#key").data('key');
if ($.cookie('check_'+Key) == null) {
  $('.blink_'+Key).each(function() {
      var elem = $(this);
      setInterval(function() {
          if (elem.css('visibility') == 'hidden') {
              elem.css('visibility', 'visible');
          } else {
              elem.css('visibility', 'hidden');
          }    
      }, 500);
  });
}

闪烁效果很好……直到 div 刷新。一旦 div 刷新,闪烁就会停止。我尝试在刷新功能中添加闪烁代码,但无济于事。

有任何想法吗?

4

2 回答 2

1

您提供的代码中存在一些语法错误。您的加载函数应该有两个参数,如$('#reload').load('/page.php #reload', function(){}) 尝试以下代码:

setInterval(function () {
    $('#reload').load('/page.php #reload', blinkText)
}, 30000);

function blinkText() {
    // check if atis cookie exits
    var Key = $("#key").data('key');
    if ($.cookie('check_' + Key) == null) {
        $('.blink_' + Key).each(function () {
            var elem = $(this);
            setInterval(function () {
                if (elem.css('visibility') == 'hidden') {
                    elem.css('visibility', 'visible');
                } else {
                    elem.css('visibility', 'hidden');
                }
            }, 500);
        });
    }
}
于 2013-06-23T11:33:55.307 回答
0

尝试将这些代码放入函数中,使其看起来像这样:

function checkForNewContent() {
// check if atis cookie exits
var Key = $("#key").data('key');
if ($.cookie('check_'+Key) == null) {
  $('.blink_'+Key).each(function() {
      var elem = $(this);
      setInterval(function() {
          if (elem.css('visibility') == 'hidden') {
              elem.css('visibility', 'visible');
          } else {
              elem.css('visibility', 'hidden');
          }    
      }, 500);
  });
}
}

然后在第一行代码的函数回调中添加新添加的函数,看起来像这样..

setInterval(function() {
    $('#reload').load('/page.php #reload'), function() { checkForNewContent(); }
}, 30000);
于 2013-06-23T09:53:10.747 回答