我使用此功能在15秒后自动点击按钮。问题是用户在运行选项后不会离开页面,并且可能会在同一页面上重新运行,但计时器会继续运行。事实上,即使我自己动手,计时器也会继续。
<script type="text/javascript">
time = 15;
interval = setInterval(function() {
time--;
document.getElementById('Label1').innerHTML = "You must choose in " + time + " seconds"
if (time == 0) {
// stop timer
clearInterval(interval);
// click
document.getElementById('thebutton').click();
}
}, 1000)
</script>
所以这个脚本应该运行计时器&#34;按&#34; &#34;按钮&#34;在十五秒内然后计时器应停止计数并重置直到再次运行。如果在15秒之前手动按下该按钮,它仍应重置。
<input type='submit' id='thebutton' value='Done'></input>
希望这很清楚。我还是新手并且在学习。
答案 0 :(得分:1)
设置基准时间,然后将其重置为该基准时间。
<script type="text/javascript">
time = 15;
baseTime = 15;
interval = setInterval(function() {
time--;
document.getElementById('Label1').innerHTML = "You must choose in " + time + " seconds"
if (time == 0) {
// stop timer
clearInterval(interval);
// click
document.getElementById('thebutton').click();
time = baseTime;
return false;
}
}, 1000)
</script>
答案 1 :(得分:1)
我看了一下代码,我认为你应该关注的最重要的事情是按钮没有&#34; onclick&#34;功能。 这意味着单击该按钮不会执行任何操作,因为您没有在其中放置一个单击它时执行操作的功能。
我写了一些希望有帮助的代码:
List<int> unsorted = new List<int> { 9, 8, 7, 6 };
public Form1()
{
InitializeComponent();
foreach (int x in unsorted)
{
textBox2.text = textBox2.text + x.ToString() + "";
}
}
private void button1_Click(object sender, EventArgs e)
{
List<int> result = new List<int>(quicksort(unsorted));
showsort(result)
}
在你的html中是这样的:
let time = 15;
const label = document.getElementById("Label1");
const button = document.getElementById("thebutton");
const getText = () => `You must choose in ${time} seconds`;
const interval = setInterval(() => {
time--;
label.innerHTML = getText();
if (time === 0) {
// stop timer
clearInterval(interval);
// click
button.click();
}
}, 1000);
const stopTime = () => {
clearInterval(interval);
time = 15;
label.innerHTML = getText();
};
最后我制作了一个小视频,我在其中浏览代码,它也很有用:https://youtu.be/ZYS9AcxO3d4
祝你有美好的一天!
答案 2 :(得分:0)
如果你只想在15秒后点击一次按钮,那么你应该使用setTimeout()函数而不是setInterval()。
然后,如果您不希望在用户单击按钮时发生自动点击,则需要向调用clearTimeout()的按钮添加onClick处理程序。
答案 3 :(得分:0)
我假设您希望标签更新为秒数倒计时?而且还不清楚计时器是如何启动的。检查以下代码,看看它是否符合您的预期。
var time, interval;
function stopTimer() {
if (interval) {
clearInterval(interval);
interval = null;
}
time = 15;
}
function timerAction() {
$('#lblStatus').text("You must choose in " + time + " seconds");
if (time-- <= 0) {
stopTimer();
console.log("done!");
$("#btnStop").click();
}
}
function startTimer() {
stopTimer();
timerAction();
interval = setInterval(timerAction, 1000);
}
$("#btnStart").click(function() {
startTimer();
});
$("#btnStop").click(function() {
stopTimer();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id=lblStatus></span>
<button id='btnStart'>Reset / Start</button>
<button id='btnStop'>Stop</button>
&#13;
答案 4 :(得分:0)
如果只想运行一次,可以使用setTimeout函数
setTimeout(your code, 15000);