Ich möchte ein Popup auslösen, wenn der Benutzer zu einer bestimmten Element-ID von meiner Website scrollt.Wie wird die JS-Funktion nur einmal ausgeführt?
Im Moment gelingt mir das, aber es funktioniert in einer Schleife und ich kann die Funktion nicht stoppen, nachdem es einmal ausgeführt wurde.
Folgt meinem JS-Code:
$(window).scroll(function() {
var executed = false;
if (!executed){
executed = true;
var hT = $('#scroll-to').offset().top,
hH = $('#scroll-to').outerHeight(),
wH = $(window).height(),
wS = $(this).scrollTop();
if (wS > (hT+hH-wH)){
<!--
window.setTimeout('window.location="javascript:showSuccessToast();"; ',2000);
// -->
}}
});
Ich kann nicht verstehen, warum die Funktion ausführt, wenn "ausgeführt" Variable wahr wird. Wie kann ich es nur einmal feuern showsuccessToast?
Mögliche Duplikat [Funktion in Javascript, die nur einmal aufgerufen werden kann] (http://stackoverflow.com/ questions/12713564/function-in-javascript-das-kann nur einmalig aufgerufen werden) –
'$ (window) .one (" scroll ", function() {...});' Keine Notwendigkeit zu behandeln das selbst. –
@Frederic, aber zeigen Sie auf ein Stück Doc, damit er folgen kann. http://api.jquery.com/one/ – arhak