lousypoetry: funktion funktioniert nicht, kann mir jemand helfen?

Hallo!

Ich hab folgende funktion geschrieben, mit der ich zwei angaben überprüfen möchte:

function treffen()
 {
  var x = document.getElementById("ball1").style.visibility.visible;
  var y = document.getElementById("brett").style.left;
  if(x = "true" && y = 330 )
  alert("Okay");
 }

dazu gehören folgende Elemente:
<img src="board.gif" id="brett" style="position:absolute; left:330; bottom:3;">
<img src="ball.gif" id="ball1" style="position:absolute; left:390; top:55;">

wenn der "ball1" sichtbar ist und sich das "brett" an der entsprechenden position befindet, soll die meldung erscheinen. leider scheibt in der funktion ein fehler zu sein, kann mir da jemand helfen? Danke!

  1. Hi,

    if(x = "true" && y = 330 )

    hier überprüfst Du, ob die Zuweisung(!) des Strings(!) "true" zu x sowie der Zahl 330 zu y jeweils einen als wahr geltenden Inhalt hinterlassen hat. Der Operator für die Gleichheitsprüfung lautet '==', die Prüfung von 'if ("true" == true)' solltest Du mal testen.

    <img src="board.gif" id="brett" style="position:absolute; left:330; bottom:3;">

    ERROR: Required attribute "alt" missing.

    Die CSS-Eigenschaften "left" und "bottom" erwarten einen Wert vom Typ length, percentage, "auto" oder "inherit" - "330" und "3" sind nichts davon, im Gegensatz zu z.B. "3%" oder "330px".

    Es ist sehr empfehlenswert, Grafiken eine Größe mitzugeben.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. hier überprüfst Du, ob die Zuweisung(!) des Strings(!) "true" zu x sowie der Zahl 330 zu y jeweils einen als wahr geltenden Inhalt hinterlassen hat. Der Operator für die Gleichheitsprüfung lautet '==', die Prüfung von 'if ("true" == true)' solltest Du mal testen.

      versteh ich nicht so ganz. das mit dem operator ist eigentlich klar, aber wieso denn 'if ("true" == true)'? eigentlich will ich ja nur wissen, ob 'document.getElementById("ball1").style.visibility.visible' "true" ist, da erschien mir meine abfrage ganz logisch. :( kannst mir vielleicht bitte mal helfen meine funktion umzuschreiben? ich hab echt schon einiges probiert, kriegs aber nicht auf die reihe.

      Die CSS-Eigenschaften "left" und "bottom" erwarten einen Wert vom Typ length, percentage, "auto" oder "inherit" - "330" und "3" sind nichts davon, im Gegensatz zu z.B. "3%" oder "330px".

      okay, seh ich ein. :) aber da es im browser auch ohne px oder % geht dachte ich, es sei egal, ob ich die angeb oder nicht.

      1. Hi,

        Die CSS-Eigenschaften "left" und "bottom" erwarten einen Wert vom Typ length, percentage, "auto" oder "inherit" - "330" und "3" sind nichts davon, im Gegensatz zu z.B. "3%" oder "330px".
        okay, seh ich ein. :) aber da es im browser auch ohne px oder % geht dachte ich, es sei egal, ob ich die angeb oder nicht.

        Dann testest Du mit dem Internet Explorer. In Browsern, wie z.B. den Geckos (Netscape >= 6.0, Mozilla, Firebird) oder Opera funktioniert es eben nicht.
        Die ignorieren fehlerhafte Werte (so wie im CSS-Standard vorgeschrieben).

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
      2. Hallo,

        'document.getElementById("ball1").style.visibility.visible' "true" ist,

        die Eigenschaft 'style.visibility.visible' kenne ich nicht.
        es gibt die Eigenschaft 'style.visibility' und die kann den Wert 'visible' oder 'hidden' haben. Also nicht auf true testen sondern auf 'visible' oder 'hidden'.
        http://selfhtml.teamone.de/javascript/objekte/style.htm#style_eigenschaften

        da erschien mir meine abfrage ganz logisch.

        naja...
        Ich glaube auch, daß Mozilla und IE für 'style.left' verschiedene Werte zurückgeben der eine die Zahl+'px', der andere nur die Zahl.

        besser ist, Du läßt dir in der Funktion erstmal die verschiedenen style-Eigenschaften der Elemente per Alert ausgeben. Dann gewinnst Du mehr Klarheit was was ist.

        Gruß, Andreas