Ich zeige ein Meldungsfeld auf einer Website an. Ich möchte es entweder auf Klick oder nach X Sekunden ausblenden lassen. Das Problem ist, dass die delay()
-Funktion den Platz über der click()
-Funktion übernimmt, was es so macht, selbst wenn Sie auf "Schließen" klicken, müssen Sie immer noch die Zeit warten.
Hier ist die jQuery
%Vor%Ich habe auch ein einfaches Spiel aufgebaut. Um das Problem zu sehen, kommentieren Sie die Verzögerungslinie Ссылка
Sie sollten es in ein setTimeout
ändern:
Ссылка
(im jsfiddle-Link)
Ich habe Ihre Verzögerungslinie entfernt und sie durch eine Standard setTimeout
like:
Als Hinweis auf WARUM: JS wird von oben nach unten gelesen und liest Ihre Verzögerung, bevor Sie auf das Ereignis klicken und es auslösen. Daher wird selbst beim Klicken auf die Verzögerung ausgeführt, wodurch alle Animationen angehalten werden.
Ich finde es die beste von Oscar Godson vorgeschlagene Umgehungslösung, die ich irgendwie hinzugefügt habe:
%Vor%Sein ursprünglicher Vorschlag ist sehr nützlich:
Sie sollten es in ein setTimeout ändern: Ссылка
(im jsfiddle-Link) Ich habe Ihre Verzögerungslinie entfernt und sie durch ein Standard-setTimeout wie:
ersetzt %Vor%Von Oscar Godson,
Tags und Links javascript jquery