Ich habe die folgende globale jQuery-Funktion gespeichert, aber beim Laden der Seite möchte ich sie nach einer Verzögerung von 1000 ausführen. Stimmt etwas mit meiner Syntax nicht? Ich weiß, dass die Verzögerung immer vor der Funktion liegt. Es reagiert nicht.
Globale Funktion:
function showpanel() {
$(".navigation").hide();
$(".page").children(".panel").fadeIn(1000);
;}
Funktion ausführen:
parallax.about.onload=function(){
$('#about').delay(3000).showpanel();
};
Antworten:
$(document).ready(function() { // place this within dom ready function function showpanel() { $(".navigation").hide(); $(".page").children(".panel").fadeIn(1000); } // use setTimeout() to execute setTimeout(showpanel, 1000) });
Mehr dazu hier
quelle
Ich habe gesucht und festgestellt, dass die Lösung unter der folgenden URL besser ist .
http://www.tutorialrepublic.com/faq/call-a-function-after-some-time-in-jquery.php
Es lohnt sich zu versuchen.
Es fügt Ihre angegebene Funktion der Warteschlange der Funktionen hinzu, die für das übereinstimmende Element ausgeführt werden sollen, bei dem es sich derzeit um dieses handelt .
$(this).delay(1000).queue(function() { // your Code | Function here $(this).dequeue(); });
und führen Sie dann die nächste Funktion in der Warteschlange für die übereinstimmenden Elemente aus, bei denen es sich derzeit wieder um diese handelt .
- EDIT [MÖGLICHE ERLÄUTERUNG FÜR DEN DEQUEUE- BEFEHL]
Schauen Sie sich den Befehl an
Wir befehlen der jQuery-Engine, eine Funktion in die interne Warteschlange aufzunehmen, und dann befehlen wir ihr nach einer bestimmten Zeit, diese Funktion aufzurufen, ABER bisher haben wir ihr nie gesagt, sie aus der Engine zu entfernen. Recht?! Und nachdem alles erledigt ist, wird es manuell aus der jQuery-Engine entfernt. Ich hoffe die Erklärung konnte helfen.
quelle
$('#main > ul').delay(100).queue(function () { $(this).attr('data-uk-grid', 'masonry: true; parallax: 150;').dequeue() }); $('#main > ul').delay(1).queue(function () { $(this).removeClass('uk-grid uk-flex-top uk-flex-wrap-top').dequeue() });
Sie können in jQuery eine Timeout-Funktion hinzufügen (Warnung nach 3 Sekunden anzeigen):
$(document).ready(function($) { setTimeout(function() { alert("Hello"); }, 3000); });
quelle
Diese Antwort ist nur hilfreich, um zu verstehen, wie Sie mit der JQuery- Funktion Verzögerungen verursachen
delay
können.Stellen Sie sich vor, Sie haben eine Warnung und möchten den Warnungstext festlegen, dann die Warnung anzeigen und nach einigen Sekunden ausblenden.
Hier ist die einfache Lösung:
$(".alert-element").html("I'm the alert text").fadeIn(500).delay(5000).fadeOut(1000);
Es ist ganz einfach:
.html()
wird den Text von ändern.alert-element
.fadeIn(500)
wird nach 500 Millisekunden eingeblendetdelay(5000)
Funktion verzögert 5000 Millisekunden, bevor die nächste Funktion aufgerufen wird.fadeOut(1000)
am Ende der Anweisung wird die ausgeblendet.alert-element
quelle