Ausführung erst neu starten, wenn Taster wieder gelöst

gianfranco0104

Erfahrenes Mitglied
Habe gerade ein Problem, ich nutze einen Hardware-Taster (nicht gedrückt "0", gedrückt "1"), der wenn er gedrückt wird mir eine Koordinate in einen editor schreibt. klappt auch perfekt. ABer der Taster wird ja in der Regel manchmal länger gedrückt, dabei wird die Koordinate dann mehrere Male ausgegeben.
Habe es mit einem längeren Timer versucht, würde klappen, verhindert aber die Möglichkeit das mehrere Einträge funktionieren, also der User ändert schnell Koordinaten und drückt dabei schnell nach jeder änderungen hintereinander.
Daher wäre es perfekt, wenn ich in meiner Funktion schreiben könnte, dass sie nur einmal eintragen und dann erst wieder erfolgen darf, wenn der Taster erst mindestens einmal auf "0" war.
Komme aber nicht dahinter. SOll ich es mit "while" machen?
Der Code momentan:
Javascript:
// (Tab Hardware-Taster Abfragen)
function requestTab(idTab){
     $.get('sps_com/prstab.asp',
     function(dataTab){
         $('#UI_Tab').html(dataTab);
         var paramTab = $('#' + idTab).html();
         $('#UI_Tab').html(paramTab);
        //Kontinuierliche Abfrage des Tasters
       setTimeout(function (){
           requestTab(idTab);}, 1); //abhohl zyklus in mms

       //tab (REL) setzen, wenn paramTab 1 ist
       if (paramTab == 1) {
          document.innerHTML = (Textuebergabe_tabRel("G90 G01 X" + paramXrel + " Y" + paramYrel + " Z" + paramZrel));

      //Tab nur einmal setzen, und erst dann wieder wenn ParamTab wieder auf 0
      // ???
      }
    });
}
//Tab Refresh
requestTab('data_tab_request');

wer kann hier helfen?
Danke schonmal im voraus
 
Zuletzt bearbeitet von einem Moderator:
Was Du dafür brauchst, ist eine Neuigkeitsauswertung:
Code:
var noteParamTab = 0;
function requestTab(idTab){

// ...

//Tab nur einmal setzen, und erst dann wieder wenn ParamTab wieder auf 0
if (paramTab != noteParamTab) {
    noteParamTab = paramTab;
    if (paramTab == 1) {
        // hier deine Aktion
    }
}
}
 
Hi Sempervivum.
vielen Dank für die Antwort. Werde es am Montag gleich mal testen.
melde mich, wenn es geklappt hat.
Ein schönes WE erstmal :)
 

Neue Beiträge

Zurück