function getCountDown(elem, countDown) {
if (countDown == 0) {
elem.attr('disabled', false).html('重新发送');
clearTimeout(t);
return;
} else {
elem.attr('disabled', true).html('重新发送(' + countDown + ')');
countDown--;
var t = setTimeout(getCountDown(elem, countDown), 1000);
}
}
var countDown = 60;
getCountDown($(this),countDown);
调用大概是这样子,
问题一:
页面上没有从60变到1,而是直接重新发送,但是调试的时候显示了数字的变化;
问题二:
t是undefined,其实setTimeout(getCountDown(elem, countDown), 1000)是有数字的,我调试时发现,但是确无法正确的负值。
问题三:
cuntDown为0时,它又从1开始
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
countDown定义成全局,每次不需要重新传递,每次调用减1,当为0时,再重新赋值60;
var t不需要定义,因为setTimeout调用只会执行一次,所以clearTimeout并没有什么作用的