2016-10-03 8 views
-3

Ich arbeite daran, einen Test für Modalitäten für eine Website mit einer 3rd-Party-App auszuführen. Die einzige Möglichkeit, dies zum Laufen zu bringen, ist setInterval, aber es läuft mein .append auf unbestimmte Zeit. Ich habe versucht, SetTimeout ohne Wirkung, sowie die Ausführung ohne setInterval. Wenn ich einfach einen Zähler setzen könnte, um nach dem Zählen auf 1 zu stoppen, würde das meine Probleme lösen. Unten ist was ich bisher habe. Bitte beachten Sie auch, dass diese Modalitäten von eckigen ablaufen, etwas, mit dem ich nicht sehr vertraut bin.Wie bekomme ich setInterval nur einmal ausgeführt?

$(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>&nbsp;&nbsp;<span>PRINT COUPONS</span></div> </a></div>"); 
     }, 500); 
    }); 
+10

'Ich habe setTimeout ohne Wirkung ausprobiert 'Welches Problem haben Sie beim Versuch, SetTimeout? – gurvinder372

+2

'setInterval' wird nur einmal in einer speziellen Funktion namens' setTimeout' ausgeführt. –

Antwort

2

Sie können die Existenz des Elements überprüfen und wenn es sie gibt das Intervall Dies auch

var timer = setInterval(function() { 
    if(vwo_$(".reveal-modal").length){ 
     clearInterval(timer); 
     vwo_$(".reveal-modal").append("..."); 
    }   
}, 200); 

Timer abbrechen können Sie die Intervalldauer verringern tun.

Verwandte Themen