如果setInterval正在运行,则会发生冲突
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果setInterval正在运行,则会发生冲突相关的知识,希望对你有一定的参考价值。
我没有设法找到脚本的方法:如果用户按下next
按钮,停止autoplay
,否则:继续autoplay
and继续显示pause
按钮。
谢谢。 :)
$(function() {
var timer;
function autoplay() {
timer = setInterval(function() {
$('#next-icon').click();
}, 5000);
};
$('#prev-icon, #next-icon').click(function() {
switch (this.id) {
case 'prev-icon':
$('#pause-icon').hide(); $('#play-icon').show();
clearInterval(timer);
break;
case 'next-icon':
$('#pause-icon').hide(); $('#play-icon').show();
clearInterval(timer);
break;
}
}); });
答案
这是方式:
$(function() {
var timer;
function autoplay() {
timer = setInterval(function() {
$('#next-icon').trigger('click', true);
}, 5000);
};
$('#prev-icon, #next-icon').click(function(event, play) {
switch (this.id) {
case 'prev-icon':
$('#pause-icon').hide(); $('#play-icon').show();
clearInterval(timer);
break;
case 'next-icon':
if (play) {
setInterval(timer);
} else {
$('#pause-icon').hide(); $('#play-icon').show(); clearInterval(timer);
}
break;
}
});
});
以上是关于如果setInterval正在运行,则会发生冲突的主要内容,如果未能解决你的问题,请参考以下文章
在if语句中添加window.location时,setInterval会冻结