Kalender: onmouseover (Scriptsprachen)

Adam @, Donnerstag, 20. Mai 2010, 21:43 (vor 110 Tagen)

Hallo,

wie bekomme ich ein onMouseOver/Out-Event bei den einzelnen TDs hin? Ich kämpfe damit seit ewigkeiten herum aber es will einfach nicht :( eigentlich müsste ja sowas hier gehen:


		this.getCell = function(tag, str, cssClass, xtitle) {
			var El = document.createElement( tag );
			El.appendChild(document.createTextNode( str ));
			if (cssClass != null)
				El.className = cssClass;
			if (xtitle != null) {
				El.title	= xtitle;
				El.onmouseover	= "this.style.backgroundColor=yellow"';
				El.onMouseout	= "this.style.backgroundColor=lightblue";
			}
			return El;
		}


Mein reingepatchter titel klappt bestens, aber keinerlei onmouse oder auch onclick geschichten :(

Kalender: onmouseover

Micha ⌂, Karlsruhe, Donnerstag, 20. Mai 2010, 21:59 (vor 110 Tagen) @ Adam

Hi,

eigentlich müsste ja sowas hier gehen:

Nein, die Event-Handler benötigen eine Funktionsreferenz. Suche im JavaScript Kalender mal nach onclick. Du wirst zB sowas finden:

th.onclick = function() { this.Instanz.switchMonth("prev"); };

fällt Dir im direkten Vergleich etwas auf?

El.onmouseover	= "this.style.backgroundColor=yellow"';

Anführungszeichen leiten in JavaScript eine Zeichenkette (einen String) ein und sind nie[1] ausführbarer Code.

Warum löst Du es nicht mit CSS? Hierfür sind die Pseudoklassen eigentlich gedacht.

Gruß Micha

[1] vom eval mal abgesehen - aber eval ist bekanntlich evil.

--
kostenlose Scripte und Software nicht nur für Geodäten || Portal für Geodäten mit angeschlossenem Forum-Vermessung

Tags:
Kalender, JavaScript

Kalender: onmouseover

Adam @, Donnerstag, 20. Mai 2010, 22:04 (vor 110 Tagen) @ Micha

ja das onclick sah ich auch schon aber damit wollte es auch nicht so, wobei ich mir keine extra funktion bastelte sondern versuchte das alles in einer zeile zu packen.. aber werds mal noch probieren, thx.

Kalender: onmouseover

Micha ⌂, Karlsruhe, Donnerstag, 20. Mai 2010, 22:06 (vor 110 Tagen) @ Adam

Hallo,

ja das onclick sah ich auch schon aber damit wollte es auch nicht so,

... wie sah der Versuch aus?

Gruß Micha

--
kostenlose Scripte und Software nicht nur für Geodäten || Portal für Geodäten mit angeschlossenem Forum-Vermessung

Kalender: onmouseover

Adam @, Donnerstag, 20. Mai 2010, 22:08 (vor 110 Tagen) @ Adam

argh, jetzt weiss ich wieder wieso ich das mit der funktion gleichwieder aufgab: die TDs haben ja keine eigenen klassen und ich will ja nur die effekte für die einzelnen Tage haben..

wieso funzt denn nun sowas nicht? ->

El.onmouseover = function() { this.style.backgroundColor=red; };

bzw wie löse ich das denn nun am einfachsten?? es geht ja nur um ne simple hintergrundfarbe bzw grafik.......

Kalender: onmouseover

Micha ⌂, Karlsruhe, Donnerstag, 20. Mai 2010, 22:14 (vor 110 Tagen) @ Adam

Hi,

die TDs haben ja keine eigenen klassen und ich will ja nur die effekte für die einzelnen Tage haben..

Aber der Kalender hat eine ID (calendar) und somit kannst Du via Nachfahren-Selektoren die TDs ansprechen. Es sollte also so in der Art gehen.

#calendar td:hover {
  background-color: red;
}

wieso funzt denn nun sowas nicht? ->
El.onmouseover = function() { this.style.backgroundColor=red; };

Weil bspw. red keine Variable ist.

bzw wie löse ich das denn nun am einfachsten??

Ich würde es mal mit CSS so wie oben angedeutet probieren, weil ich das für eleganter halte. Wenn es dann nicht gehen sollte, passen wir das Script an.

Gruß Micha

--
kostenlose Scripte und Software nicht nur für Geodäten || Portal für Geodäten mit angeschlossenem Forum-Vermessung

Tags:
Kalender, JavaScript

Kalender: onmouseover

Adam @, Donnerstag, 20. Mai 2010, 22:19 (vor 110 Tagen) @ Micha

hi again,

ne hover probierte ich auch schon durch, tut sich leider gar nichts :(
auch nicht mit: div#calendar table tbody td:hover

im script selber wärs mir aber auch lieber denn da hätte ich an der stelle dann für später schonmal was zum ansetzen.. d.h. will bei onmouseover noch mehr spielkrams einbauen, aber ich verstehe das ganze prinzip von dem JS/DOM-Mix-Code nicht :( mache style-sachen gehen direkt, andere nicht... so bekamm ich El.style/border/color etc auch nichts ans laufen während aber El.title geht.... ich lass da im title btw die kalenderwoche anzeigen und das soll später mal bei onmouseover in die obere zeile anstatt des monats oder so... bzw vielleicht auch als eleganterer tooltip...

lg

Kalender: onmouseover

Micha ⌂, Karlsruhe, Donnerstag, 20. Mai 2010, 22:25 (vor 110 Tagen) @ Adam

Guten Abend,

ne hover probierte ich auch schon durch, tut sich leider gar nichts :(

Doch, exakt so, wie ich es beschrieben habe funktioniert es auch.

http://dev.derletztekick.de/calendar/

Gruß Micha

--
kostenlose Scripte und Software nicht nur für Geodäten || Portal für Geodäten mit angeschlossenem Forum-Vermessung

Kalender: onmouseover

Adam @, Donnerstag, 20. Mai 2010, 22:32 (vor 110 Tagen) @ Micha

seltsam, so klappts hier per MSIE und firefox auch, aber im sidebar gadget will hover wohl nicht...

wie würde das per El.onmouseover aussehen? ich dachte da noch an nem className-wechsel aber zickte auch herum.. eine JS funktion aufrufen geht ja wie gesagt an der stelle wohl nicht da diese ja alle TDs verändern würde... wobei, vielleicht ginge dabei auch this.className?..

Kalender: onmouseover

Adam @, Donnerstag, 20. Mai 2010, 22:39 (vor 110 Tagen) @ Adam

El.onMouseOver = function() { mytest(); };

macht auch rein gar nichts, das selbe bei OnClick.. ich bin verwirrt *g*

Kalender: onmouseover

Micha ⌂, Karlsruhe, Donnerstag, 20. Mai 2010, 22:48 (vor 110 Tagen) @ Adam

Hi,

wie würde das per El.onmouseover aussehen?

El.onmouseover = function(e) { this.style.backgroundColor="yellow"; };

Ich mache Feierabend für heute!

Viel Erfolg noch
Micha

--
kostenlose Scripte und Software nicht nur für Geodäten || Portal für Geodäten mit angeschlossenem Forum-Vermessung

Kalender: onmouseover

Adam @, Donnerstag, 20. Mai 2010, 22:50 (vor 110 Tagen) @ Micha

ahh wie geil! tausend dank, so klappt es! *froi&dops* *gggggg*

Kalender: onmouseover

Adam @, Freitag, 21. Mai 2010, 01:21 (vor 109 Tagen) @ Adam

ist ziemlich cool geworden denke ich! :-)
thanx again und siehe: http://kopacz.de/tmp/cal.avi (hing beim snappen etwas)

lg

Kalender: onmouseover

Micha ⌂, Karlsruhe, Freitag, 21. Mai 2010, 13:34 (vor 109 Tagen) @ Adam

Hallo,

ist ziemlich cool geworden denke ich! :-)

Ja, hat was. :-D

Schöne Pfingsten
Micha

--
kostenlose Scripte und Software nicht nur für Geodäten || Portal für Geodäten mit angeschlossenem Forum-Vermessung

Funktion für Kalenderwoche

Micha ⌂, Karlsruhe, Dienstag, 25. Mai 2010, 18:30 (vor 105 Tagen) @ Adam

Hallo,

ich habe mir mal Deine Modifikation kurz angesehen. Du verwendest in der Funktion KalenderWoche zum Bestimmen des Jahres Datum.getYear() und rechnest ggf. 1900 dazu:

function KalenderWoche(j,m,t) {
  var Datum = new Date();
  if (!t) {
    j = Datum.getYear(); if (1900 > j) j +=1900;
    m = Datum.getMonth(); t = Datum.getDate();
  }
  else m--;
  Datum = new Date(j,m,t,0,0,1);
  var tag = Datum.getDay(); if (tag == 0) tag = 7;
  var d = new Date(2004,0,1).getTimezoneOffset();
  var Sommerzeit = (Date.UTC(j,m,t,0,d,1) - Number(Datum)) /3600000;
  Datum.setTime(Number(Datum) + Sommerzeit*3600000 - (tag-1)*86400000);
  var Jahr = Datum.getYear(); if (1900 > Jahr) Jahr +=1900;
  var kw = 1;
  if (new Date(Jahr,11,29) > Datum) {
    var Start = new Date(Jahr,0,1);
    Start = new Date(Number(Start) + 86400000*(8-Start.getDay()));
    if(Start.getDate() > 4) Start.setTime(Number(Start) - 604800000);
    kw = Math.ceil((Datum.getTime() - Start) /604800000);
  }
  return kw;
}

Hier bietet sich doch die Funktion getFullYear() an.

Gruß Micha

--
kostenlose Scripte und Software nicht nur für Geodäten || Portal für Geodäten mit angeschlossenem Forum-Vermessung

RSS-Feed dieser Diskussion