Javascript 如何使setInterval只运行一次?
我正在尝试为一个有第三方应用的站点运行modals测试。我能让它工作的唯一方法是使用setInterval,但它会无限期地运行我的.append。我尝试过setTimeout,但没有效果,也尝试过在没有setInterval的情况下运行它。如果我能在数到1后设置一个计数器停止,我想它会解决我的问题。以下是我到目前为止的情况。另外,请注意,这些模态是有角度的,我不太熟悉Javascript 如何使setInterval只运行一次?,javascript,jquery,Javascript,Jquery,我正在尝试为一个有第三方应用的站点运行modals测试。我能让它工作的唯一方法是使用setInterval,但它会无限期地运行我的.append。我尝试过setTimeout,但没有效果,也尝试过在没有setInterval的情况下运行它。如果我能在数到1后设置一个计数器停止,我想它会解决我的问题。以下是我到目前为止的情况。另外,请注意,这些模态是有角度的,我不太熟悉 $(document).ready(function() { vwo_$(function(){ setIn
$(document).ready(function() {
vwo_$(function(){
setInterval(function() {
vwo_$(".reveal-modal").append("<hr> <h3> Text \"pz330\" to Shell1 and redeem your Pennzoil® oil change coupon today. </h3> <br> <p> <em>Message and data rates may apply. For more details, please see our <a href=\"http://www.shell.com/privacy.html\" target=\"_blank\">Privacy Policy</a> and <a href=\"http://www.shell.com/terms-of-use.html\" target=\"_blank\">Terms and Conditions</a>. </em> </p> <hr> <a data-ng-click=\"redeemOffer(\'clickPrintCTA\');\" href=\"redeem?print=true\" class=\"button radius expand desktopCTABtn\" data-equalizer-watch=\"\"> <div><i class=\"fa fa-print fa-lg\"></i> <span>PRINT COUPONS</span></div> </a></div>");
}, 500);
});
$(文档).ready(函数(){
vwo_$(函数(){
setInterval(函数(){
vwo_$(“.discover modal”)。在Shell1中附加(
文本\“pz330\”,并在今天兑换Pennzoil®换油优惠券。
消息和数据费率可能适用。有关更多详细信息,请参阅我们的和。
”;
}, 500);
});
您可以检查元素是否存在,当元素存在时,取消间隔计时器
var timer = setInterval(function() {
if(vwo_$(".reveal-modal").length ){
clearInterval(timer);
vwo_$(".reveal-modal").append("...");
}
}, 200);
这也将允许您减少间隔时间。
我尝试设置超时无效
尝试设置超时时遇到什么问题?setInterval
在一个名为setTimeout
的特殊函数中只运行一次。