带JavaScript的倒计时计时器在smarty中不起作用
嗨,伙计们,我用Smarty()和JavaScript制作了一个带有倒计时的表,看起来一切都正常,但我不知道为什么我的倒计时只有一行结果 如果可能的话,看看我的代码,告诉我我能做什么。谢谢所有的程序员。祝你今天愉快 HTML:带JavaScript的倒计时计时器在smarty中不起作用,javascript,smarty,Javascript,Smarty,嗨,伙计们,我用Smarty()和JavaScript制作了一个带有倒计时的表,看起来一切都正常,但我不知道为什么我的倒计时只有一行结果 如果可能的话,看看我的代码,告诉我我能做什么。谢谢所有的程序员。祝你今天愉快 HTML: <table class="table table-striped table-hover" id="datatable3" cellspacing="0" width="100%"> <thead> <tr>
<table class="table table-striped table-hover" id="datatable3" cellspacing="0" width="100%">
<thead>
<tr>
<th></th>
<th>Avatar</th>
<th>Player Name</th>
<th>Game</th>
<th>SS Shots</th>
<th>BanTime Remaining</th>
<th>Ban Reason</th>
</tr>
</thead>
<tbody class="tb1">
{foreach $bans as $ban}
<tr class="tr1">
<td class="count"></td>
<td>{$ban.avatar}</td>
<td>{$ban.name}</td>
<td>{$ban.game}</td>
<td>{$ban.ss}</td>
<td>{include file="time.tpl"}</td>
<td>{$ban.reason}</td>
</tr>
{/foreach}
</tbody>
</table>
阿凡达
球员姓名
游戏
党卫军射击
剩余时间
禁令理由
{foreach$bans作为$ban}
{$ban.avatar}
{$ban.name}
{$ban.game}
{$ban.ss}
{include file=“time.tpl”}
{$ban.reason}
{/foreach}
time.tpl:
<script type="text/javascript" language="javascript">
var now = new Date();
var event = new Date("{$ban.bantime}"*1000);
var milleseconds = (event - now) / 10;
var seconds = milleseconds / 100;
var minutes = seconds / 60;
var hours = minutes / 60;
var days = hours / 24;
var month = days / 30;
var years = days / 365.25;
ID=window.setTimeout("update();", 1);
function update() {
now = new Date();
seconds = (event - now) / 1000;
seconds = Math.floor(seconds);
minutes = seconds / 60;
minutes = Math.floor(minutes);
hours = minutes / 60;
hours = Math.floor(hours);
days = hours / 24;
days = Math.floor(days);
month = month / 30;
month = Math.floor(month);
years = days / 365.25;
years = Math.floor(years);
seconds = seconds - minutes*60;
if (seconds < 10) { seconds = "0" + seconds.toString(); }
minutes = minutes - hours*60;
if (minutes < 10) { minutes = "0" + minutes.toString(); }
hours = hours - days*24;
days = days - Math.floor(years*365.25);
document.getElementById("years").innerHTML = years;
document.getElementById("month").innerHTML = month;
document.getElementById("days").innerHTML = days;
document.getElementById("hours").innerHTML = hours;
document.getElementById("minutes").innerHTML = minutes;
document.getElementById("seconds").innerHTML = seconds;
ID=window.setTimeout("update();",500);
}
</script>
<table cellspacing="0" cellpadding="0" border="0" >
<tbody class="{$ban.userID}">
<tr>
<td><span id="years"></span></td>
<td><span id="month"></span></td>
<td><span id="days"></span></td>
<td><span id="hours"></span></td>
<td><span id="minutes"></span></td>
<td><span id="seconds"></span></td>
</tr>
<tr>
<td><span>years</span></td>
<td><span>month</span></td>
<td><span>days</span></td>
<td><span>hours</span></td>
<td><span>min</span></td>
<td><span>sec</span></td>
</tr>
</tbody>
</table>
var now=新日期();
var事件=新日期(“{$ban.bantime}”*1000);
var milleseconds=(事件-现在)/10;
var秒=千秒/100;
var分钟=秒/60;
var小时=分钟/60;
var天数=小时/24;
var月=天/30;
var年=天/365.25;
ID=window.setTimeout(“update();”,1);
函数更新(){
现在=新日期();
秒=(事件-现在)/1000;
秒=数学地板(秒);
分=秒/60;
分钟=数学地板(分钟);
小时=分钟/60;
小时=数学楼层(小时);
天=小时/24;
天=数学地板(天);
月=月/30;
月=数学楼层(月);
年=天/365.25;
年=数学地板(年);
秒=秒-分钟*60;
如果(秒<10){seconds=“0”+seconds.toString();}
分钟=分钟-小时*60;
如果(分钟<10){minutes=“0”+minutes.toString();}
小时=小时-天*24;
天=天-数学下限(年*365.25);
document.getElementById(“年”).innerHTML=年;
document.getElementById(“月”).innerHTML=month;
document.getElementById(“天”).innerHTML=天;
document.getElementById(“小时”).innerHTML=hours;
document.getElementById(“分钟”).innerHTML=minutes;
document.getElementById(“秒”).innerHTML=seconds;
ID=window.setTimeout(“update();”,500);
}
年
月
天
小时
闵
秒
但是我的代码只有一行结果,为什么?
请参阅。您的问题是
setTimeout
将函数指针作为参数,而不是函数名字符串
因此,试试这个:ID=setTimeout(更新,500)代码>
有关更多信息,请查看。他们也有一个例子
document.getElementById(“年”)
返回id为年的元素
在你的例子中,我只能看到一个id为years的元素
如果要更改一组元素,可能需要给它们一个类名,然后对所有元素执行操作
例如:
// If you keep *multiple rows* something like this (not sure about your table structure)
<tbody class="{$ban.userID}">
<tr>
<td><span class="years"></span></td>
...
</tr>
<tr>
<td><span>years</span></td>
...
</tr>
<tr>
<td><span class="years"></span></td>
...
</tr>
<tr>
<td><span>years</span></td>
...
</tr>
</tbody>
</table>
/** This would do the trick **/
document.getElementsByClassName("years").innerHTML = years;
// ...
//如果您保留*多行*类似的内容(不确定您的表结构)
...
年
...
...
年
...
/**这样就行了**/
document.getElementsByClassName(“年”).innerHTML=年;
// ...
`lol不适用于旧的,至少我有一行结果,现在没有结果