Javascript 设置超时不';在移动Safari上不间断工作?
在Javascript 设置超时不';在移动Safari上不间断工作?,javascript,mobile-safari,Javascript,Mobile Safari,在complete块中,尝试实现闪烁动画。这是可行的,但在Safari Mobile上,有时设置超时似乎不起作用,因为闪烁的动画没有停止。显然这与使用.on('单击touchstart',…)有关 当用户点击按钮时,会发生某种双重触发。删除冗余的touchstart后,我无法再复制此操作。不确定此操作是否有用。您正在将refreshIntervalId设置为全局变量。如果在其他地方使用refreshIntervalId,可能会导致问题。改为像var refreshIntervalId=…那样声明
complete
块中,尝试实现闪烁动画。这是可行的,但在Safari Mobile上,有时设置超时似乎不起作用,因为闪烁的动画没有停止。显然这与使用.on('单击touchstart',…)
有关
当用户点击按钮时,会发生某种双重触发。删除冗余的
touchstart
后,我无法再复制此操作。不确定此操作是否有用。您正在将refreshIntervalId
设置为全局变量。如果在其他地方使用refreshIntervalId
,可能会导致问题。改为像var refreshIntervalId=…
那样声明它,以便它在函数中起作用
$('.btn-activate').on('click touchstart', function() {
$('.discount').each(function() {
var $this = $(this);
$({ countNum: parseInt($this.html())}).animate({
countNum: couponPercentage
},
{
duration: 1000,
easing:'linear',
step: function() {
$this.html(Math.floor(this.countNum) + '% OFF');
},
complete: function() {
$this.html(Math.floor(this.countNum) + '% OFF');
refreshIntervalId = setInterval(function() {
if ($this.css('visibility') == 'hidden') {
$this.css('visibility', 'visible');
} else {
$this.css('visibility', 'hidden');
}
}, 200);
setTimeout(function(){
clearInterval(refreshIntervalId);
if ($this.css('visibility') == 'hidden') {
$this.css('visibility', 'visible');
}
}, 2000);
}
});
});
})