清除并重新启动 setInterval
Clear and Restart setInterval
在我的 setInterval
中,如果 div 包含 4) PLACEHOLDER
,它将在前面加上一个图像
如果 div 不包含这些词,它将清除间隔假设 div 文本是真实的并且是 4) PLACEHOLDER
所以间隔被清除但随后文本变为 5) PLACEHOLDER
如何重启 Interval 以再次检查 if 语句?
var interval = 500;
var timer = window.setInterval(function() {
if(jQuery("div.text-split-original").text().trim().indexOf('4) PLACEHOLDER') != -1) {
$('.scar__label').prepend('<img src="smiley.gif" />');
clearInterval(timer);
}
}, interval);
我可以使用 else 语句而不是 clearInterval 来删除图像,但是当我这样做时,图像会被一遍又一遍地添加,所以如果有一个解决方案可以只添加一次图像但让间隔继续播放将是我最好的选择:
var interval = 500;
var timer = window.setInterval(function() {
if(jQuery("div.text-split-original").text().trim().indexOf('4) PLACEHOLDER') != -1)
{
$('.scar__label').append('<img src="smiley.gif" />');
}
else
{
$(".scar__label img:last-child").remove()
}
}, interval);
提前致谢。
(function($) {
var interval = 500;
var $smiley = $('<img src="smiley.gif" class="smiley" />');
window.setInterval(function() {
//see if the text is 4)
if ($("div.text-split-original").text().trim().indexOf('4) PLACEHOLDER') > -1) {
//only add a smiley if one does not exist
if ($('.scar__label').find('.smiley').length < 1) {
$('.scar__label').prepend($smiley);
}
//see if the text is 5)
} else if ($("div.text-split-original").text().trim().indexOf('5) PLACEHOLDER') > -1) {
//delete that smiley!
$smiley.detach();
}
}, interval);
window.setInterval(function(){
if ($("div.text-split-original").text().trim().slice(0, 2) === '4)') {
$("div.text-split-original").text('5) PLACEHOLDER');
} else {
$("div.text-split-original").text('4) PLACEHOLDER');
}
}, 2000);
}(jQuery));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label class="scar__label"></label>
<div class="text-split-original">4) PLACEHOLDER</div>
在我的 setInterval
中,如果 div 包含 4) PLACEHOLDER
,它将在前面加上一个图像
如果 div 不包含这些词,它将清除间隔假设 div 文本是真实的并且是 4) PLACEHOLDER
所以间隔被清除但随后文本变为 5) PLACEHOLDER
如何重启 Interval 以再次检查 if 语句?
var interval = 500;
var timer = window.setInterval(function() {
if(jQuery("div.text-split-original").text().trim().indexOf('4) PLACEHOLDER') != -1) {
$('.scar__label').prepend('<img src="smiley.gif" />');
clearInterval(timer);
}
}, interval);
我可以使用 else 语句而不是 clearInterval 来删除图像,但是当我这样做时,图像会被一遍又一遍地添加,所以如果有一个解决方案可以只添加一次图像但让间隔继续播放将是我最好的选择:
var interval = 500;
var timer = window.setInterval(function() {
if(jQuery("div.text-split-original").text().trim().indexOf('4) PLACEHOLDER') != -1)
{
$('.scar__label').append('<img src="smiley.gif" />');
}
else
{
$(".scar__label img:last-child").remove()
}
}, interval);
提前致谢。
(function($) {
var interval = 500;
var $smiley = $('<img src="smiley.gif" class="smiley" />');
window.setInterval(function() {
//see if the text is 4)
if ($("div.text-split-original").text().trim().indexOf('4) PLACEHOLDER') > -1) {
//only add a smiley if one does not exist
if ($('.scar__label').find('.smiley').length < 1) {
$('.scar__label').prepend($smiley);
}
//see if the text is 5)
} else if ($("div.text-split-original").text().trim().indexOf('5) PLACEHOLDER') > -1) {
//delete that smiley!
$smiley.detach();
}
}, interval);
window.setInterval(function(){
if ($("div.text-split-original").text().trim().slice(0, 2) === '4)') {
$("div.text-split-original").text('5) PLACEHOLDER');
} else {
$("div.text-split-original").text('4) PLACEHOLDER');
}
}, 2000);
}(jQuery));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label class="scar__label"></label>
<div class="text-split-original">4) PLACEHOLDER</div>