Ankündigung

Einklappen
Keine Ankündigung bisher.

JQuery setinterval clearinterval

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sickone4
    hat ein Thema erstellt JQuery setinterval clearinterval.

    JQuery setinterval clearinterval

    Hallo Leute,

    ich hab mich eigentlich noch nie mit dem Thema jQuery befasst.

    Nun habe ich ein script verwendet, welches jedoch dieses nutzt. eine kleine anpassung benötige ich jedoch:

    es handelt sich um einen slider, der mit einer checkbox automatisch gestartet werden kann und dann durch eine timerzeit automatisch slidet.

    das ist der originalcode:

    Code:
    $('#checkbox').change(function(){
       setInterval(function () {
           moveRight(); }, 7000);        
     });
    wie man aber leicht lesen kann triggert die checkbox bei jedem click einen neuen timer. also wird das ganze zu einer schnellen sache^^

    was ich aber benötige ist:

    if checkbox is checked -> timerstart
    if checkbox unchecked -> timerdelete

    Code:
        var slideTimer;
    
        function slideTrigger() {
            slideTimer = setInterval(function(){ moveRight(); }, 2000);
        }
    
        if($('#checkbox').is(':checked')){ slideTrigger(); }
        else { clearInterval(slideTimer); }
    so sieht mein code aus, aber funktioniert nicht. entweder startet es nicht, oder es stopt nicht.

    woran kann das liegen?

    gruß sven

  • nikosch
    antwortet
    Jo. Schön falsch.

    Einen Kommentar schreiben:


  • Sickone4
    antwortet
    es funktioniert.

    so habe ich es nun gelöst:

    Code:
        var slideTimer;
        
        function slideTrigger() { slideTimer = setInterval(function () { moveRight(); }, 7000); }
    
    // Einmalig bei Pageload die Checkbox vorladen "checked" und den Slider starten
        $( document ).ready(function() {
            $("#checkbox").prop('checked', true);
            slideTrigger(); 
        });
    
        $("#checkbox").change(function() {
            if(this.checked) { slideTrigger(); }
            else { clearInterval(slideTimer); }
        });
    das blöde hier war, dass ich nur das change event betrachtet habe, nicht aber, dass der slide bei pagestart ja laufen soll.

    danke

    Einen Kommentar schreiben:


  • tkausl
    antwortet
    Du hast das Change-Event nicht drin. Guck dir nochmal deinen ersten Code oben an.

    Einen Kommentar schreiben:


  • Sickone4
    antwortet
    vielleicht ein tip?

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Ja.

    Einen Kommentar schreiben:


  • Sickone4
    antwortet
    meinst du mit event den wechsel von checked auf unchecked?

    if($('#checkbox').prop('checked', true)) { slideTrigger(); }
    if ($('#checkbox').prop('checked', false)){ clearInterval(slideTimer); }

    so geht es auch nicht

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Daran dass man nun mal ein Event nehmen muss, wenn der Code auch durchlaufen werden soll?

    Einen Kommentar schreiben:

Lädt...
X