我正在尝试在javascript中实现记录列表的停止和启动计时器。我使用ng- element.But来显示所有项。我为每个重复的重复记录放置开始/停止切换按钮。问题是假设我得到4个记录,如果我为第四个记录单击开始计时器,那么第一个记录按钮将更改为Stop.Whichever按钮,我始终单击第一个记录按钮将被切换。
这是我的html
<ul class="list-group" data-ng-repeat="job in
allAppliedJobsForTimeTracker">
<li class="list-group-item">{{job.title}} Hours : {{job.hours}}
<input type="button" name="btn" id='btn' value="Start" data-ng-
click="startTimeTracker(job)" onclick="to_start()";> </li>
</ul>这是我的脚本
<script language=javascript>
var h=0;
var m=0;
var s=0;
function to_start(){
switch(document.getElementById('btn').value)
{
case 'Stop':
window.clearInterval(tm); // stop the timer
document.getElementById('btn').value='Start';
break;
case 'Start':
tm=window.setInterval('disp()',1000);
document.getElementById('btn').value='Stop';
break;
}
}
function disp(){
// Format the output by adding 0 if it is single digit //
if(s<10){var s1='0' + s;}
else{var s1=s;}
if(m<10){var m1='0' + m;}
else{var m1=m;}
if(h<10){var h1='0' + h;}
else{var h1=h;}
// Display the output //
str= h1 + ':' + m1 +':' + s1 ;
document.getElementById('n1').innerHTML=str;
// Calculate the stop watch //
if(s<59){
s=s+1;
}else{
s=0;
m=m+1;
if(m==60){
m=0;
h=h+1;
} // end if m ==60
}// end if else s < 59
// end of calculation for next display
}
</script>我想改变按钮,只为点击的记录row.Not的第一个record.Can谁告诉我如何才能做到这一点?
发布于 2019-03-01 13:02:37
你得到了第一次出现的btn。使用event.target而不是getElementById。像这样的东西
<input
type="button"
name="btn"
id="btn"
value="Start"
data-ng-click="startTimeTracker(job)"
onclick="to_start(event)"
/>
function to_start(event) {
switch(event.target.value) {
case 'Stop':
window.clearInterval(tm); // stop the timer
event.target.value='Start';
break;
case 'Start':
tm=window.setInterval('disp()',1000);
event.target.value='Stop';
break;
}
}https://stackoverflow.com/questions/54938077
复制相似问题