Rektal
Here to stay
|
Doh! I c, damn. Stell mir das nicht so flüssig vor zu prototypen mit JSP wenn du einen JS Client Fehler suchst .. kannst nicht zum testen das ganze HTML File einfach wo statisch ablegen und rumschieben/testen der Elemente ohne JSP im Hintergrund, maximal noch die Ressourcen von Tomcat referenzieren?
|
prayerslayer
Oar. Mh.
|
Pfoah ich hasse JavaScript! Ein paar Mal hab ich jetzt Project gecleaned, WD des Tomcat gelöscht, ein bisschen die Skript-Tags herumgeschoben und auf einmal läufts wieder Der alert() im document.ready ist nicht gekommen, weil eine fehlerhafte Abfrage dazwischen war. Im Prinzip bin ich wieder glücklich, außer dass der NoGray Calendar nicht angezeigt wird, obwohl ich ihn 1:1 (nur mit anderem Namen) wie im Beispiel eingebunden hab
Bearbeitet von prayerslayer am 07.06.2010, 16:33
|
Rektal
Here to stay
|
Ich glaub den Link auf deinen Desktop willst nicht im Post haben.
|
prayerslayer
Oar. Mh.
|
Sorry, falschen Tab erwischt. Habs editiert.
//Ich seh schon, warum der Calendar nicht geht... Konstruktor wird fehlerhaft aufgerufen.
Bearbeitet von prayerslayer am 07.06.2010, 16:36
|
prayerslayer
Oar. Mh.
|
MooTools und jQuery sind kollidiert, deswegen kein Kalenderkonstruktor.
|
Rektal
Here to stay
|
Waaaaaaa, dreckszeug! Afaik kannst du jQuery so konfigurieren das es nicht kollidiert (also das es "$" nicht überschreibt); na, trotzdem ärgerlich.
|
prayerslayer
Oar. Mh.
|
Jo, das hat lustigerweise gleich funktioniert (im Gegensatz zu allem anderen ). var $j = jQuery.noConflict();
$j(document).ready(...)
Jetzt hab ich das Problem, dass ich das Format, in dem der friggin Kalender seine DatesOff haben will, nicht verstehe. Oder den Wald vor Bäumen nicht seh. Läuft: var us_holidays = [{date:1,
month:0},
{date:"3rd Monday",
month:0},
{date:"3rd Monday",
month:1},
{date:"last Monday",
month:4},
{date:4,
month:6},
{date:"1st Monday",
month:8},
{date:"2nd Monday",
month:9},
{date:11,
month:10},
{date:"4th Thursday",
month:10},
{date:25,
month:11}];
Läuft nicht (auch ohne blanks): var notSelectableDates = [{date:24, month:5},{date:25, month:5},{date:26, month:5}];
Andererseits wars vorhin so, dass man im Kalender NICHTS außer Wochenenden selektieren konnte. Das hat sich auch plötzlich selbst behoben //Wenn ich letzteres hardcode, gehts. Wenn ich denselben String mit $j("#jsonTF").html() geladen habe, gehts nicht. ///"Nicht gehen" heißt in meinem Fall, ich kann gar kein Datum auswählen.
Bearbeitet von prayerslayer am 07.06.2010, 18:43
|
jives
And the science gets done
|
Ich versteh deine JSON-Selektoren ehrlich gesagt nicht... Ich nehm an du beskommst die Daten über eine AJA"X"-Abfrage. Injizierst du dann das JSON ins DOM und selektierst es nacher? Wenn ja, wieso? Du könntest es doch gleich weiterverarbeiten...
|
prayerslayer
Oar. Mh.
|
Die Daten kommen aus einem Servlet, eine andere Art des Datenaustauschs zwischen Java und JavaScript ohne Applet ist mir nicht eingefallen.
Also: Java sammelt Daten, formatiert sie in JSON, schreibt sie ins DOM, JavaScript liest entsprechendes DOM-Objekt, wandelt JSON um und verwendet es.
|
jives
And the science gets done
|
Ah ok. Ich weiß nicht ob es möglich ist mit der Architektur Daten roh (ohne jegliche Header und HTML) auszugeben. Wenn ja könntest du das ganze wie gesagt mit einem AJAX-Zugriff auf eine Seite, die nur deine JSON-Daten ausgibt lösen http://api.jquery.com/jQuery.ajax/http://api.jquery.com/jQuery.getJSON/Du würdest die Daten dann auch als ordentliches JSON im Script haben. Andernfalls würde ich mal schauen, ob du wirklich valides JSON zurückbekommst - vielleicht gibts Probleme beim Encoding (könnte aber auch bei der anderen Lösung passieren), oder Zeilenumbrüche o.ä. passen nicht. P.S.: AJAX macht natürlich nur Sinn, falls die Daten beim Seitenaufruf noch nicht zur Verfügung stehen. Wenn du aber schon weißt, was für Daten benötigt werden, dann würde ich den betreffenden Teil des Scripts dynamisch erstellen.
|
prayerslayer
Oar. Mh.
|
Ich finds ja auch nicht schön Allerdings wäre ich zufrieden, wenn ich die JSON Daten unsichtbar ins DOM bekäme, sodass sie keinen Impact aufs Layout haben. Ich hätte ja hidden Inputs genommen, aber da schlägt sich die value mit den double quotes. Die Daten sind beim Seitenaufruf vorhanden, sie werden ja direkt in der HTML Seite an den Client geliefert. Leider weiß ich grad nicht, was du mit "den betreffenden Teil des Scripts dynamisch erstellen" meinst :/
|
jives
And the science gets done
|
Wenn du die Daten schon zur Verfügung hast, dann kannst du ja JS genauso wie HTML serverseitig dynamisch erstellen lassen.
Eine einfache Möglichkeit ist, an der passenden Stelle im Header (dort, alle relevanten Dinge bereits initialisiert sind, aber noch vor dem Verarbeiten der Daten) einfach deine JS-Variablen in <script>-Tags zu packen und ihnen die benötigten JSON-Daten zuzuweisen.
Die Idee ist, dass JS-Daten im JS bleiben, das DOM (oder zumindest der body) unangetastet bleibt und du dich nicht mit Dingen wie Sonderzeichen herumärgern musst.
|
Rektal
Here to stay
|
Soweit ich verstanden habe macht er das eh genau so .. aber vielleicht falsch interpretiert. Bin ja schon gespannt was Sache ist
|
prayerslayer
Oar. Mh.
|
Hm, das ist an sich eine gute Idee... Dass ich JS Code auch dynamisch erstellen kann ist mir nicht eingefallen :/
Ich müsste jetzt halt den ganzen Code aus den .js Dateien wieder zurück in <script> Tags in meinen Header transferieren, damit ich mit den Variablen auch arbeiten kann, oder?
|
jives
And the science gets done
|
Nein, die verschiedenen JS-Scripten werden sowieso zusammengewürfelt (du musst ja z.B. jQuery auch nur einmal includen und kannst es dann überall verwenden). Es sollte reichen, wenn du wirklich nur die Variablen in die <script>-Tags packst (wie gesagt aufpassen, dass sie nachher nicht überschrieben oder vorher schon benötigt werden.)
|