Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Click i powtórka zdarzeń
Forum PHP.pl > Forum > XML, AJAX
dela
[JAVASCRIPT] pobierz, plaintext
  1. $("#button-add").click(
  2. function (){
  3. $(".buttons").animate({"top": "-=35px"}, 150);
  4. setTimeout(function(){
  5. $(".buttons").fadeOut(50)}, 50);
  6. setTimeout(function(){
  7. $(".menu-button-add").fadeIn(150)}, 180);
  8. });
  9. $("#okey").click(
  10. function () {
  11. $(".menu-button-add").fadeOut(130), 180;
  12. setTimeout(function(){
  13. $(".buttons").fadeIn(50)}, 180);
  14. setTimeout(function(){
  15. $(".buttons").animate({"top": "+=35px"}, 150)}, 180);
  16. });
[JAVASCRIPT] pobierz, plaintext

Problem jest następujący... Jeżeli szybko kliknę na #button-add animacja wykonuję się 2x(przesunięcie .buttons wynosi wtedy -70px) z kolei mam #okey który przywraca .buttons tylko o 35px. Co mam zrobić by uniemożliwić wielokrotne kliknięcie na #button-add questionmark.gif
lobopol
ustaw np. jakąś zmienną przed wykonaniem powiedzmy block = 1; i w funkcji sprawdzaj czy jest ustawione na 1, jeżeli tak ustawiaj na np. 2 i na zakończeniu funkcji ustawiaj ją znowu na 1.
ShadowD
Grr kocham jak ktoś korzysta z 1 i 2, a w jakim calu jest boold? Na początku animate=false, jak wykonujesz animację - na samym początku sprawdzasz czy animate==false jeśli tak, to dodajesz animate=true, a po skończonej animacji jako powodzenie (kolejny argument w animate({co i o ile},function(){animate=false})). Jeśli dodał byś przypisanie na false w inny sposób nic by to nie dało, a dzięki takiemu nazewnictwie wszystko jest bardzo czytelne. :-)
dela
Hmm jestem początkującym więc jeszcze mało się orientuje ale na phpowski rozum, rozumuje że chodzi o if(), zgadza się? wink.gif)
Ale jakby ktoś mógł mi to wpisać w kod byłbym bardzo wdzięczny.

Wyjaśni lub pomoże mi ktoś?
ShadowD
Po click, od razu na początku sprawdzasz czy animate=0 jeśli tak to puszczasz dalej, jeśli nie to nic nie robisz if(){tu zawartość cilick - ta w finction(){TO}}. Na początku skryptu var animate =0 (poza czymkolwiek na samym up). W if zaczynasz o przepisanie animate=1, potem w kolejnym argumencie tak jak pisałem Ci kilka dni temu dodajesz zmianę na 0. Tyle, jeśli tego nie rozumiesz polecam kurs js a jeśli nie to jquery.
dela
Dzięki @ShadowD za wskazówki oczywiście poleciał już (+). Powiedz mi ostatnia rzecz czy ten return $animate to trafiont pomysł i czy ogólnie ten skrypt ma ręce i nogi
[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){
  2. $(".menu-button-add").hide();
  3.  
  4. var $animate = false;
  5. $("#button-add").click(function (){
  6. if ($animate == false) {
  7. $(".buttons").animate({"top": "-=35px"}, 150);
  8. setTimeout(function(){
  9. $(".buttons").fadeOut(50)}, 50);
  10. setTimeout(function(){
  11. $(".menu-button-add").fadeIn(150)}, 180);
  12. return $animate = true;
  13. }
  14. });
  15.  
  16. $('#[title=undo]').click(function () {
  17. if ($animate == true) {
  18. $(".menu-button-add").fadeOut(130), 180;
  19. setTimeout(function(){
  20. $(".buttons").fadeIn(50)}, 180);
  21. setTimeout(function(){
  22. $(".buttons").animate({"top": "+=35px"}, 150)}, 180);
  23. return $animate = false;
  24. }
  25. });
  26. });
  27.  
[JAVASCRIPT] pobierz, plaintext
ShadowD
Nie, to nie ta bajka - takie coś raczej nie naprawi Twojego problemu, w ogóle dziwnie to wymyśliłeś, czytałeś co Ci pisałem dokładnie? snitch.gif

Kod
var animate=0

$(function(){
    $('#clickme').click(function() {
        if(animate==0){
            animate=1
            
            $('#book').animate({
                opacity: 0.25
            }, 5000, function() {
                // Animation complete.
                animate=0
            })
        }
    })
})


Ps. Twój kod po pierwszym kliknięciu zablokuje przycisk na wieki. :-)
dela
Śmiechem, żartem ale to co napisałem działa i nie blokuje przycisku na wieki smile.gif skrypt uniemożliwia wielokrotnemu kliknięciu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.