0

我正在使用 JQUERY.COUNTDOWN - 我有一个问题:

它可以与多个实例一起工作并在倒计时结束时隐藏一个表格行吗?

我有一张桌子,每一行都有一个像这样的“倒计时”:

-----------------------------------------------
item 1     expires in 10:10:20s   [button: GO!]
-----------------------------------------------
item 2     expires in 12:20:33s   [button: GO!]
-----------------------------------------------
item 3     expires in 22:08:53s   [button: GO!]

使用:

HTML:
<div data-countdown="2016/01/01"></div>
<div data-countdown="2017/01/01"></div>
<div data-countdown="2018/01/01"></div> 

JS:
$('[data-countdown]').each(function() {
var $this = $(this), finalDate = $(this).data('countdown');
$this.countdown(finalDate, function(event) {
$this.html(event.strftime('%D days %H:%M:%S'));

if (event.elapsed){
$(this).html('EXPIRED');};

});
});

我可以控制“在 XX:XX:XXs 中过期”并将 TXT 更改为“过期”,但我有一个按钮“开始!” 对于每个项目 - 此按钮将保留。

然后,我需要隐藏所有行。

我使用脚本,我可以隐藏每一行:

 $("#Job3").countdown("2015/09/07 03:43:20", function(event) {
 var format = '%H:%M:%S';
 if(event.offset.days > 0) {
  format = '%-d day%!d ' + format;
      }
 if (event.offset.seconds > 0) { 
       $("#Panel").show();
       $("#NoJob").hide();
      }       
 $(this).text(event.strftime(format));
      if (event.elapsed){
       $(this).html('Expired');
       $("#TdJob3").hide();
      if (($('table#Panel tr:visible').length) == 1) { 
       $("#Panel").hide();
       $("#NoJob").show();
      }}
  });

#Panel - 是表

#JobXX - 是倒计时 div

#TDJobXX - 是要隐藏的 TD/ROW

#NoJob - 是一条警告消息,仅在隐藏所有 TD 时出现。(没有工作可用)

问题是我将有数千行。如果我需要为每一行创建规则将是一个问题。

然后我需要一个解决方案来处理多个实例并在倒计时结束时隐藏每一行..

任何想法?

我不太了解 Jquery/JS……但我阅读了所有文档,并为“单次倒计时”创建了解决方案……:D

4

1 回答 1

0

您可以使用 jQueryslideUp()来隐藏计时器已过期的行。

由于计时器的目标元素是 id 的 div Job1,它位于 内部<tr>,因此您需要向上遍历直到.like<tr>调用以隐藏完整的行。slideUp()

JS代码:

$(this).closest('tr').slideUp();

参考:jQuery .slideUp()

于 2015-09-07T14:24:19.397 回答