Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

Flo_W

unregistriert

1 Zum Seitenanfang

Sonntag, 10. Januar 2010, 15:03

Javascript-Variablenproblem - Browser interpretiert rechenformel als string -.-

wie kann ich verhindern das mein brwoser diese variable als string interpretiert und somit unbrauchbare werte erzielt?
objLeft = 500
xPos = Mauskoordinate(rund 0-1280)
clickX = mausklickkoordinate(rund 0-864)
var xCoord = objLeft+xPos-clickX;
BITTE BITTTE HELFT MIR :thumbsup:
 

Treml

Tripel-As

Dabei seit: 19.03.2003

Beiträge: 237

 

2 Zum Seitenanfang

Sonntag, 10. Januar 2010, 16:22

Ohne die beiden Funktionen zu kennen ist das Problem schwer auszumachen.
An Deiner Stelle würde ich erst einmal mit der JavaScript-Funktion isNaN() überprüfen, ob xPos und clickX auch wirklich Zahlwerte enthalten, mit denen man rechnen kann.

Bedeutet »rund 0-1280«, dass der Funktion Zahlen von 0 bis 1280 übergeben werden oder steht »rund 0-1280« wirklich genauso im Script?
i u t w w f c b - u y a s t m w m
 

ivanhoe

Eroberer

Dabei seit: 09.06.2009

Beiträge: 69

 

3 Zum Seitenanfang

Sonntag, 10. Januar 2010, 17:59

Eventuell reicht ein cast auf int (für Ganzzahlen) aus.

Quellcode

1
var xCoord = parseInt(objLeft)+xPos-clickX;


Zitat von »http://de.selfhtml.org/javascript/sprache/variablen.htm«


Variablen in JavaScript sind nicht so streng an Typen gebunden wie in vielen anderen Programmiersprachen. Einfache Variablentypen, wie Zahlen, Zeichenketten oder Wahrheitswerte, werden lediglich nach numerischen und nicht-numerischen Variablen eingeteilt. Kommazahlen und Ganzzahlen benötigen keine unterschiedlichen Typen. Der Inhalt von numerischen Variablen kann ohne vorherige Konvertierung in Zeichenketten auf den Bildschirm oder in Meldungsfenster geschrieben werden. Umgekehrt können Sie aber mit Zeichenketten, z.B. Werten aus Formularfeldern, nicht immer automatisch rechnen, sondern müssen sie vorher explizit in Zahlen umwandeln. Für die explizite Typumwandlung gibt es verschiedene Seite objektunabhängige Funktionen.
 

Flo_W

unregistriert

4 Zum Seitenanfang

Sonntag, 10. Januar 2010, 18:14

Danke das reicht^^
klappt endlich wieder(Gadgets-Verschieben)
thx :thumbsup:
 

nocturne

Kaiser

Dabei seit: 06.01.2005

Beiträge: 1 167

 

5 Zum Seitenanfang

Donnerstag, 14. Januar 2010, 16:10

dieses parseint geht kürzer: einfach multiplizieren mit 1.

ist browserunabhängig und präzise
z.B.: alert('2'*2)
gibt "4".

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »nocturne« (14. Januar 2010, 16:10)

 

ospx

Kaiser

Dabei seit: 11.11.2006

Beiträge: 1 131

 

6 Zum Seitenanfang

Donnerstag, 14. Januar 2010, 18:48

Mit dieser Kurzschreibweise und alert() würde ich bei derartigen Problemen aber sehr aufpassen, denn alert() wandelt intern ziemlich brutal alles mögliche wie ein eval() um. Klar, dass dann auch strings, wenn möglich, zu Integer oder Floats umgewandelt werden, was unter normalen Bedingungen(ohne alert()) so nicht unbedingt passiert.
Somit funktionieren Tests mithilfe von alert() häufig scheinbar richtig, der Abschnitt versagt aber aus anscheinend unerfindlichen Gründen, wenn das entsprechende alert() später fehlt, da nun eben auch das implizite eval() vom alert() fehlt.

siehe dazu nochmals obigen Ausschnitt aus selfhtml:

Zitat

...Umgekehrt können Sie aber mit Zeichenketten, z.B. Werten aus Formularfeldern, nicht immer automatisch rechnen, sondern müssen sie vorher explizit in Zahlen umwandeln...
(geht jedoch über alert() ... und schon ist der Fehler drin)

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »ospx« (14. Januar 2010, 18:48)

 

Ähnliche Themen