fer: setInterval und document left

guten abend wenn ich diese function aufrufe kommen immer nur fehler raus
timerSpec=setInterval("lineOfSight("+blockSpec+")",1);

sohab ich es auch shcon probiert ging auch nicht:
timerSpec=setInterval(lineOfSight(blockSpec),1);

wenn ich die id hart reinschreibe gehts nur der id-name dynamisch bleiben
so geht es:
timerSpec=setInterval("lineOfSight('spec_1'),1);

mach ich am aufruf was falsch`?

danke bye

  1. Hi,

    guten abend wenn ich diese function aufrufe kommen immer nur fehler raus
    timerSpec=setInterval("lineOfSight("+blockSpec+")",1);

    sohab ich es auch shcon probiert ging auch nicht:
    timerSpec=setInterval(lineOfSight(blockSpec),1);

    Bitte lies die Tipps für Fragende!
    Sowohl von Fehlern zu reden, ohne diese zu nennen, als auch "funzt nich" - sind beides keine *brauchbaren* Problembeschreibungen.

    wenn ich die id hart reinschreibe gehts nur der id-name dynamisch bleiben
    so geht es:
    timerSpec=setInterval("lineOfSight('spec_1'),1);

    mach ich am aufruf was falsch`?

    Abgesehen von obigem - du notierst deine dynamisch reingebrachte ID nicht als Textliteral.

    Ersetze timerSpec=setInterval(..., 1) zunächst durch alert(...) - und schau dir dann bei den drei obigen Varianten an, wie das jeweils aussieht.
    Schau dabei auch, was die JS-Fehlerkonsole (eines guten Browsers wie bspw. Firefox) dir dazu meldet.
    Dann sollte dir der Unterschied klar werden.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Hm hab die variable blockSpec global deklatriert nicht mehr in der function dann geht es seltsam soganz verstehen tu ich das nicht

      trotzdem danke bye.

  2. hier mal mehr quellcode vieleicht hilft das weiter
    wenn ich es so schreibe:
    timerSpec=setInterval('lineOfSight('+blockSpec+')',1);
    kommt der fehler :spec_1 is not defined
    aber das element ist da
    <div id="spec_1" onclick="">test1</div>

    so bei der schreibweise:
    timerSpec=setInterval(lineOfSight(blockSpec),1);
    kommt der fehler
    "useless setInterval call (missing quotes around argument"

    und wie gesagt so funktioniert es
    timerSpec=setInterval("lineOfSight('spec_1')",1);

    hoffe es ist jetzt detailierter.

    ######################################

    var DivID=5; //die anzahl der sonderangebote+1
    var firstObject=1;
    var specBreite=200; //die breite eines sonderangebotes in pixel
    var actSpecBreite=specBreite;
    var timerSpec;
    var leftPos=0;
    function haeng(){
    var blockSpec='spec_'+firstObject;
    timerSpec=setInterval('lineOfSight('+blockSpec+')',1);
    document.getElementById('specRahmen').innerHTML+="<div id='spec_"+DivID+"'>"+document.getElementById(blockSpec).innerHTML+"</div>";
    DivID++;
    firstObject++;
    }
    function lineOfSight(specId){
    if(actSpecBreite>0){
    document.getElementById(specId).style.position='relative';
    document.getElementById(specId).style.left=leftPos+'px';
    actSpecBreite--;
    leftPos--;
    }else{
    actSpecBreite=specBreite;
    clearInterval(timerSpec);
    //removeElement('specRahmen',specId);
    }
    }

    1. Hi,

      hier mal mehr quellcode vieleicht hilft das weiter

      Bitte setze gegebene Tipps und Vorschläge um.

      MfG ChrisB

      --
      Light travels faster than sound - that's why most people appear bright until you hear them speak.
      1. so ich habs jetzt erstmal so probiert
        timerSpec=setInterval("alert("+blockSpec+")",1);

        selbe fehlermeldungen wie schon beschrieben

        was meinst du damit das blockSpec kein textliteral ist?

        1. Hi,

          so ich habs jetzt erstmal so probiert
          timerSpec=setInterval("alert("+blockSpec+")",1);

          D'oh!

          Ich schrieb, dass du
          timerSpec=setInterval(...,1);
          durch
          alert(...)
          ersetzen solltest!

          was meinst du damit das blockSpec kein textliteral ist?

          Wie das ganze in statischer Form, mit fest vorgegebenem Wert, auszusehen hat, das hast du ja schon.
          Also nutze jetzt alert, um zu schauen, ob dein dyanmischer Versuch auf das gleiche hinausläuft. Und wenn nicht, überlege dir, was daran anzupassen ist.

          MfG ChrisB

          --
          Light travels faster than sound - that's why most people appear bright until you hear them speak.