Anzeige

Javascript: if-teil funkt. else-teil nicht, problem variablen ?

Javascript: if-teil funkt. else-teil nicht, problem variablen ? | PSD-Tutorials.de

Erstellt von buyas, 02.04.2012.

  1. buyas

    buyas Nicht mehr ganz neu hier

    Dabei seit:
    21.03.2012
    Beiträge:
    67
    Geschlecht:
    männlich
    Javascript: if-teil funkt. else-teil nicht, problem variablen ?
    guten morgen !
    habe folgende funktion, um auf click, nen div - container zu bewegen ( über scriptaculous effect ) und wieder zurück zur ausgangsposition zu bewegen:

    Code (Text):
    1.  
    2.  
    3. function bewegung(divId){
    4.         var div = document.getElementById(divId);
    5.         var a = div.offsetLeft;
    6.         var b = "100";
    7.         var c = (b-a);
    8.         var d = div.offsetTop;
    9.         var e = "100";
    10.         var f = (e-d);
    11.         var g = (a-b);
    12.         var h = (d-e);
    13.         var xf = "100";
    14.     if ( a != xf ) {
    15.         Effect.MoveBy(div, f, c,
    16.      {duration:1.7, transition:Effect.Transitions.sinoidal});
    17.         } else {
    18.         Effect.MoveBy(div, h, g,
    19.      {duration:1.7, transition:Effect.Transitions.sinoidal});
    20.      }
    21. }
    22.  
    23.  
    aufgerufen wird die funktion per onclick.
    der if - teil funktionert, nur der else - teil leider nicht. vermute es liegt an den variablen ? verändern sich die variablen aufgrund der durch die bewegung ggf. verursachten veränderung von offsetLeft ? dadurch würde ja bei der berechnung "0" rauskommen und logischerweise keine bewegung laut else stattfinden. falls es daran liegen sollte, kann man die entsprechenden "ursprungsvariablen" bzw. ihre werte fix also unbeinflussbar durch die bewegung machen ?
    würde mich über jeden tip freuen !!!
    danke im voraus !


    PS die div position habe im css mit left:300px angegeben
     
    Zuletzt bearbeitet: 02.04.2012
    #1      
  2. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    Javascript: if-teil funkt. else-teil nicht, problem variablen ?
    AW: Javascript: if-teil funkt. else-teil nicht, problem variablen ?

    Gebe dir doch mal var a durch ein alert oder so aus. Ich denke das der Wert nicht 134 sein wird.

    P.S. Wenn du die Variablen fix haben möchtest. definiere Sie auserhalb der Funktion, dann werden sie nicht immer neu deklariert.
     
    Zuletzt bearbeitet: 02.04.2012
    #2      
  3. buyas

    buyas Nicht mehr ganz neu hier

    Dabei seit:
    21.03.2012
    Beiträge:
    67
    Geschlecht:
    männlich
    Javascript: if-teil funkt. else-teil nicht, problem variablen ?
    AW: Javascript: if-teil funkt. else-teil nicht, problem variablen ?

    danke für den tip.
    also ich hab feststellen können, dass der wert 134 bzw. 100 beträgt, das macht schonmal keine probleme.
    die variablen außerhalb der funktion zu deklarieren bringt nichts, da a und d ja durch offsetleft definiert werden, welche ja den aktuellen zustand einbeziehen und nicht den zustand vor der bewegung..
    nach stunden langem google hab ich gelesen, es soll wohl die möglichkeit geben, irgendwie einen zustand wie ne position o.ä. mit this.state und return oder derartiges speichern zu können um diesen dann genau so wieder verwenden zu können ohne dass es durch eine bewegung in meinem fall überschrieben wird. das wäre genau das was ich suche .. hab aber leider noch nich raus wie das genau gehen soll. irgend ne idee wie das aussehen könnte ? wäre super ..
     
    #3      
  4. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    Javascript: if-teil funkt. else-teil nicht, problem variablen ?
    AW: Javascript: if-teil funkt. else-teil nicht, problem variablen ?

    Naja mit Variablen die auserhalb der Funktion deklariert sind. Du speicherst z.b. die var a in der var xxx (die auserhalb deklariert ist). Beim nächsten Aufruf hast du den neuen wert (var a) und den alten Wert (var xxx).
     
    #4      
  5. cebito

    cebito undefined

    262
    Dabei seit:
    08.03.2008
    Beiträge:
    8.316
    Geschlecht:
    männlich
    Ort:
    Dresden
    Kameratyp:
    zum durchgucken
    Javascript: if-teil funkt. else-teil nicht, problem variablen ?
    AW: Javascript: if-teil funkt. else-teil nicht, problem variablen ?

    Du versuchst mit einem String zu rechnen, lass die Anführungszeichen bei der Variablendeklaration weg. Außerdem frag ich mich, warum du drei Variablen brauchst um ihnen den Wert 100 zu geben. Da ich nirgendwo sehe, das eine dieser Variablen noch irgendwo verändert wird hätt es doch eine auch getan, oder?
     
    #5      
  6. buyas

    buyas Nicht mehr ganz neu hier

    Dabei seit:
    21.03.2012
    Beiträge:
    67
    Geschlecht:
    männlich
    Javascript: if-teil funkt. else-teil nicht, problem variablen ?
    AW: Javascript: if-teil funkt. else-teil nicht, problem variablen ?

    danke für den hinweis cebito .. was man nich alles übersieht unter schlaflosigkeit :p, brauch die hundert natürlich nicht doppelt und dreifach.
    hab es ohne anführungszeichen probiert, hat aber nicht geholfen.
    das problem ist ja, daher macht eine funktionsexterne deklaration, denke ich auch nicht wirklich sinn, robbyn, dass unter a oder was auch immer dann letztendlich nur offsetLeft gespeichert ist, allerdings nicht als konkreter zahlenwert, sondern sozusagen als anweisung offsetLeft ( den aktuellen ) zu ermitteln und den weiterzuverarbeiten. da offsetLeft nach der bewegung / animation sich ändert, kann die zweite animation nicht starten, da durch den aktuellen offsetLeft ja 0 bei der berechnung rauskommt, also keine bewegung stattfinden kann.
    man könnte natürlich auch den offsetLeft als die zahl, die sie ist verwenden, aber bei hypothetisch 100 bildern, videos, etc. auf die das angewendet werden soll, ist es sehr lästig das immer wieder neu anzugeben und berechnen zu lassen etc. das heißt, ich muss, denk ich mal, offsetLeft,-top o.ä. benutzen um durch die funktion die entsprechenden werte ermitteln zu lassen. allerdings muss die funktion ja mit dem ursprungs-offsetleft rechnen und nicht mit dem veränderten nach der animation, um diese sozusagen rückwärts laufen lassen zu können.
    meine idee ist, ob man den ursprungswert vor der animation ermitteln und auch unbeschreibbar speichern kann für die verarbeitung für den zweiten teil der animation.
    hatte wie gesagt fetzen von this.state und return als idee auf irgend ner seite, die mir google gegeben hat, aufgeschnappt, weiß aber leider nicht recht viel damit anzufangen und hab diesbezüglich auch nich viel gefunden. bin newbie by the way.
    vielleicht weiß ja jemand was mit den fetzen anzufangen oder kann mich in anderer form inspirieren. würde mich sehr freuen .. gut nacht !
     
    #6      
x
×
×