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

  • 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
    irgendwann werde ich auch helfen können - vielleicht.

  • #2
    Daran dass man nun mal ein Event nehmen muss, wenn der Code auch durchlaufen werden soll?
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      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
      irgendwann werde ich auch helfen können - vielleicht.

      Kommentar


      • #4
        Ja.
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar


        • #5
          vielleicht ein tip?
          irgendwann werde ich auch helfen können - vielleicht.

          Kommentar


          • #6
            Du hast das Change-Event nicht drin. Guck dir nochmal deinen ersten Code oben an.
            [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

            Kommentar


            • #7
              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
              irgendwann werde ich auch helfen können - vielleicht.

              Kommentar


              • #8
                Jo. Schön falsch.
                [COLOR="#F5F5FF"]--[/COLOR]
                [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                [COLOR="#F5F5FF"]
                --[/COLOR]

                Kommentar

                Lädt...
                X