zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > CSS
Seite neu laden Mouseover per javascipt ändern

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 14.11.2007, 11:17
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 09.01.2006
Beiträge: 36
mike-b befindet sich auf einem aufstrebenden Ast
Standard Mouseover per javascipt ändern

Servus,

Ich möchte gerne das mouseover eines div-containers per java script ändern. Im mouseover wird jedoch eine funktion ausgeführt.

Die grösse und der Z-index lassen sich soweit ändern, leider das mouseover nicht:


Code:
card = document.getElementById('t'+array[1]);	
card.style.top = 470;
card.style.left = 270;
card.style.zIndex = 200;

card.onmousevver = 'Tip(\'test\')';
Gibts hier eine lösung?

Grus
Mike

Geändert von mike-b (14.11.2007 um 11:36 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 14.11.2007, 12:40
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.03.2004
Beiträge: 1.838
RoToRa wird schon bald berühmt werden
Standard

Im DOM verlangen Event-Handler eine Funktionsreferenz und nicht einen String. Wenn deraufzurufende Funktion keine Parameter ubergeben werden sollen, reicht eine direkte Zuweisung:

Code:
card.onmouseover = Tip;
Wenn Parameter übergeben werden müssen, kann man eine anonoyme Funktion verwenden:

Code:
card.onmouseover = function() {
   Tip("test");
};

Hier gibt es übrigens auch ein JavaScrip Sub-Forum.

Robin
__________________
CSS-Rauch! Nicht einatmen!
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 14.11.2007, 14:22
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 09.01.2006
Beiträge: 36
mike-b befindet sich auf einem aufstrebenden Ast
Standard

hi danke soweit so gut.

Nun setz ich also die mouseovers per javascript. Wie lang ist das mouseover dann gültig? Das ursprüngliche element hat selber ja kein mouseover, denn es wird erst per javascriptfunktionsaufruf zugewiesen.

Ich habe nun das problem, dass wenn ich die funktion 2 mal aufrufe, zwar das 2. element sein mouseover erhält, das erste es aber verliert ... (seite wird nicht neu geladen)

Ausschnitt:
Code:
	function reveal_card(){
		card = document.getElementById('card'+karten[1]);
		mouseovertext = document.getElementById('mouseovertext'+karten[1]);
		
		//set visible
		card.style.visibility = 'visible';
		
	
		switch(picked)
		{
			case 1: card.style.top = target_t[picked];
					card.style.left = 270;
					card.onmouseover = function() {Tip('<div align=center><b>1:</b><br><br>' + mouseovertext.innerHTML + '</div>')};
			break;
			case 2: card.style.top = target_t[picked];
					card.style.left = target_l[picked];
					card.onmouseover = function() {Tip('<div align=center><b>2:</b><br><br>' + mouseovertext.innerHTML + '</div>')};
			break;
			case 3: card.style.top = target_t[picked];
					card.style.left = target_l[picked];
					card.onmouseover = function() {Tip('<div align=center><b>3:</b><br><br>' + mouseovertext.innerHTML + '</div>')};
			break;
			case 4: card.style.top = target_t[picked];
					card.style.left = target_l[picked];
					card.onmouseover = function()
					{Tip('<div align=center><b>4:</b><br><br>' + mouseovertext.innerHTML + '</div>')};
			break;
			case 5: card.style.top = target_t[picked];
					card.style.left = target_l[picked];
					card.onmouseover = function() {Tip('<div align=center><b>5:</b><br><br>' + mouseovertext.innerHTML + '</div>')};
			break;
			case 6: card.style.top = target_t[picked];
					card.style.left = target_l[picked];
					card.onmouseover = function() {Tip('<div align=center><b>6:</b><br><br>' + mouseovertext.innerHTML + '</div>')};
			break;
			case 7: card.style.top = target_t[picked];
					card.style.left = target_l[picked];
					card.onmouseover = function() {Tip('<div align=center><b>7:</b><br><br>' + mouseovertext.innerHTML + '</div>')};
			break;
			case 8: card.style.top = target_t[picked];
					card.style.left = target_l[picked];
					card.onmouseover = function() {Tip('<div align=center><b>8:</b><br><br>' + mouseovertext.innerHTML + '</div>')};
			break;
			case 9: card.style.top = target_t[picked];
					card.style.left = target_l[picked];
					card.onmouseover = function() {Tip('<div align=center><b>9:</b><br><br>' + mouseovertext.innerHTML + '</div>')};
			break;
			case 10: card.style.top = target_t[picked];
					 card.style.left = target_l[picked];
					 card.onmouseover = function() {Tip('<div align=center><b>10:</b><br><br>' + mouseovertext.innerHTML + '</div>')};
			break;
		}
	}
Mit mouseovertext.innerHTML hol ich aus DIVs mit den ensprechenden IDs die Texte raus.

Geändert von mike-b (14.11.2007 um 14:44 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 15.11.2007, 17:37
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 09.01.2006
Beiträge: 36
mike-b befindet sich auf einem aufstrebenden Ast
Standard

Hat jemand eine Idee?

Gruss Mike

PS: man könnte den post ins javascript-forum verschieben.
Mit Zitat antworten
  #5 (permalink)  
Alt 16.11.2007, 08:53
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 09.01.2006
Beiträge: 36
mike-b befindet sich auf einem aufstrebenden Ast
Standard

brauchts noch mehr infos? Unklar?

Gruss
Mike
Mit Zitat antworten
  #6 (permalink)  
Alt 16.11.2007, 10:56
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.03.2004
Beiträge: 1.838
RoToRa wird schon bald berühmt werden
Standard

Zitat:
Zitat von mike-b Beitrag anzeigen
Wie lang ist das mouseover dann gültig?
Solange es nicht überschrieben wird.

Zitat:
Das ursprüngliche element hat selber ja kein mouseover, denn es wird erst per javascriptfunktionsaufruf zugewiesen.

Ich habe nun das problem, dass wenn ich die funktion 2 mal aufrufe, zwar das 2. element sein mouseover erhält, das erste es aber verliert ... (seite wird nicht neu geladen)
Diese Aussagen verstehe ich nicht ganz.

Zitat:
Code:
	function reveal_card(){
		card = document.getElementById('card'+karten[1]);
Wo/wie genau wird bestimmt das ein anderes Element angespochen wird? Ändert sich karten[1] zwischen den Aufrufen? Überhaupt finde ich die Verwendung eines hartcodierten Array-Indexes hier etwas merkwürdig.

Zitat:
Code:
		switch(picked)
		{
			case 1: card.style.top = target_t[picked];
					card.style.left = 270;
					card.onmouseover = function() {Tip('<div align=center><b>1:</b><br><br>' + mouseovertext.innerHTML + '</div>')};
			break;
			case 2: card.style.top = target_t[picked];
					card.style.left = target_l[picked];
					card.onmouseover = function() {Tip('<div align=center><b>2:</b><br><br>' + mouseovertext.innerHTML + '</div>')};
			break;
Dieser Switch ist auch etwas ungewöhnlich. Es müsste doch auch ohne gehen:

Zitat:
card.style.top = target_t[picked];
card.style.left = picked == 1 ? 270 : target_l[picked];
card.onmouseover = function() {Tip('<div align=center><b>' + picked + ':</b><br><br>' + mouseovertext.innerHTML + '</div>')};
Zitat:
Mit mouseovertext.innerHTML hol ich aus DIVs mit den ensprechenden IDs die Texte raus.
Das hört sich auch nicht besonders sauber an. Werden die mouseovertext-DIVs noch für was anderes verwendet? Wenn nicht wäre es meiner Meinung nach sinnvoller die Texte z.B. in einem JavaScript-Array unterzubringen.

Ansonsten bräuchte ich eine vollständiges funktionierendes Beispiel, am besten als URL, wosie eine Erklärung was passieren soll.

Robin
__________________
CSS-Rauch! Nicht einatmen!
Mit Zitat antworten
  #7 (permalink)  
Alt 16.11.2007, 11:12
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 09.01.2006
Beiträge: 36
mike-b befindet sich auf einem aufstrebenden Ast
Standard

"Das hört sich auch nicht besonders sauber an. Werden die mouseovertext-DIVs noch für was anderes verwendet? Wenn nicht wäre es meiner Meinung nach sinnvoller die Texte z.B. in einem JavaScript-Array unterzubringen."

Sind auch Bilder und Formatierungen:

Ein solcher DIV sieht so aus:

<div id="mouseovertext1" style="visibility: hidden;">
<img src="Bilder_gross/1g.jpg" border="0"><br><br><b>Karte 1:</b> Hier steht die Beschreibung der Karte 1.
</div>


"Dieser Switch ist auch etwas ungewöhnlich. Es müsste doch auch ohne gehen:"

->Sollte jedoch nicht den Fehler verursachen
Mit Zitat antworten
  #8 (permalink)  
Alt 16.11.2007, 11:30
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.03.2004
Beiträge: 1.838
RoToRa wird schon bald berühmt werden
Standard

Zitat:
Zitat von mike-b Beitrag anzeigen
Sind auch Bilder und Formatierungen:
Das ist kein Hindenis.

Zitat:
Code:
<div id="mouseovertext1" style="visibility: hidden;">
<img src="Bilder_gross/1g.jpg" border="0"><br><br><b>Karte 1:</b> Hier steht die Beschreibung der Karte 1.
</div>
Code:
var mouseovertexte = [
   "<img src=\"Bilder_gross/1g.jpg\" border=\"0\"><br><br><b>Karte 1:</b> Hier steht die Beschreibung der Karte 1.",
   "...",
   "..."
];
(Das HTML könnte auch sauberer sein.)


Zitat:
->Sollte jedoch nicht den Fehler verursachen
Nein, aber ohne funktionierenes Beispiel kann ich den Fehler nicht nachvollziehen.

Robin
__________________
CSS-Rauch! Nicht einatmen!
Mit Zitat antworten
  #9 (permalink)  
Alt 25.11.2007, 21:03
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 09.01.2006
Beiträge: 36
mike-b befindet sich auf einem aufstrebenden Ast
Standard

habe nun ziemlich lange rumgeschraubt, die mouseoverbilder krieg ich einfach nicht hin.

Das Problem: Ab die zuletzt gezogene Karte überschreibt die mouseoverbilder der vorhergehenden Karten!

Hier live:

Tarot

hätte jemand einen tip, wo der fehler liegt?

Geändert von mike-b (26.11.2007 um 09:21 Uhr)
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 27.11.2007, 11:12
Benutzerbild von Hasso
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 02.05.2006
Beiträge: 139
Hasso befindet sich auf einem aufstrebenden Ast
Standard

Code:
	function reveal_card(){
		card = document.getElementById('card'+karten[picked]);
		switch(picked)
		{
		
			case 1: card.style.top = target_t[picked];
					card.style.left = target_l[picked];
					card.onmouseover = function() 
(...)
Vielleicht habe ich ja gerade eine Denkhemmung - aber welche Funktion (eine namens function??) rufst du denn beim card.onmouseover auf?
__________________
Hasso
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Lightbox per MouseOver Swiper Javascript & Ajax 0 11.12.2008 18:03
Per Ajax ein JS Array aus Datenbank befüllen zur weiterverwendung per JS stravid Javascript & Ajax 30 24.11.2008 13:52
mod_rewrite Performance bei vielen Regeln fox Serveradministration und serverseitige Scripte 7 25.09.2008 02:02
Wort per Mouseover nach oben steigen lassen megaquest CSS 2 11.09.2007 14:30
Ist absoluter container mit Höhe der ganzen Seite möglich? amroth.calaelen CSS 8 15.06.2006 15:57


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:35 Uhr.