onmouseover -> mehrere Scripte aufrufen
phil
- javascript
0 Rouven0 Gunnar Bittersmann
Hallo Leute!!!
Ich möchte, das wenn ich auf einen <div> Container mit der Maus komme, das mehr onmouseover mehrere Scripte geladen werden!
Mit einem Script ändert sich hintergrund farbe und beim andern soll sich die Statusleiste ändern!
Die Scripte hab ich schon aber ich möchte sie nicht zusammenfassen d.h. heißt es sollen 2 einzelne Scripte bleiben die sich aber beide laden!
Wir kann ich das machen??
<div onmouseover="script1 & script2 laden">
ich hoffe ihr könnt mir helfen!
bis dahin
mfg
phil
Hi,
schau dir die Grundlagen von JavaScript an, dann gibts auf Anhieb mal zwei Möglichkeiten:
MfG
Rouven
Hi,
Hier die Antwort:
onmouseover='function1(), function2(), function3()'
Greetz,
Korni
Hier die Antwort:
onmouseover='function1(), function2(), function3()'
Allenfalls ein Vorschlag.
Du erzeugst hier eine Liste aus den Rückgabewerten der Funktionen.
Falls du das Posting gelesen hast, auf das du geantwortet hast, hättest du einen besseren Vorschlag gemacht.
Struppi.
Hello out there!
Falls du das Posting gelesen hast, auf das du geantwortet hast, hättest du einen besseren Vorschlag gemacht.
Einen noch besseren Vorschlag als Rouvens? Was soll das sein? ;-) (Abgesehen von dem eindringlichen Vorschlag, auf jegliche Manipulation der Statuszeile zu verzichten.)
See ya up the road,
Gunnar
Falls du das Posting gelesen hast, auf das du geantwortet hast, hättest du einen besseren Vorschlag gemacht.
Einen noch besseren Vorschlag als Rouvens?
Natürlich nicht, einen besser als er selbst - wäre natürlich dann Rouvens Vorschlag gewesen - dann hätte er aber das Posting nicht abschicken brauchen.
Jetzt weiß ich warum der Vorschlag kam
Struppi.
Hi,
onmouseover='function1(), function2(), function3()'
Du erzeugst hier eine Liste aus den Rückgabewerten der Funktionen.
Wirklich? Soweit ich weiß, kennt Javascript den sequence operator. Demnach wäre das ein Ausdruck, der von links nach rechts nacheinander die einzelnen Operanden auswertet und den Wert des letzten Operanden (hier also den Rückgabewert von function3()) hat.
SelfHTML ist derselben Ansicht: http://de.selfhtml.org/javascript/sprache/operatoren.htm#rangfolge
(Zumindest was die Existenz betrifft, eine Erklärung fehlt)
cu,
Andreas
Hi,
Wirklich? Soweit ich weiß, kennt Javascript den sequence operator. Demnach wäre das ein Ausdruck, der von links nach rechts nacheinander die einzelnen Operanden auswertet und den Wert des letzten Operanden (hier also den Rückgabewert von function3()) hat.
Das ist man zumindest bei mozilla.org deiner Meinung.
Ebenso hier und insbesondere hier.
MfG
Rouven
onmouseover='function1(), function2(), function3()'
Du erzeugst hier eine Liste aus den Rückgabewerten der Funktionen.Wirklich? Soweit ich weiß, kennt Javascript den sequence operator. Demnach wäre das ein Ausdruck, der von links nach rechts nacheinander die einzelnen Operanden auswertet und den Wert des letzten Operanden (hier also den Rückgabewert von function3()) hat.
Ja, stimmt.
Allerdings läßt sich das nur bedingt ausnutzen.
Das geht nämlich nicht (zumindest im IE 4):
function f1(){ return 1;}
function f2(){ return 2;}
function f3(){ return 3;}
var x = f1(),f2(),f3();
alert(x);
Mit einer Klammer um (f1(),f2(),f3()) ergibt es aber, genau wie du sagst, drei (und keine Liste, wie ich behauptet habe)
Wobei das etwas widersprüchlich zu einem Funktionsaufruf ist:
alert( p(f1(),f2(),f3()) );
// Aber:
alert( p( (f1(),f2(),f3()) ));
function p( )
{
return (arguments[0]);
}
Wo der Ausdruck dann selbstverständlich nicht ausgewertet wird.
Allgemein würde ich das Komma nicht als Operator benutzen, um Verwechselungen zu vermeiden. Da er sowohl als Listentrenner in Funktionsaufrufen und Indexoperatoren verwendet wird, als auch als sequence Operator.
Struppi.
Hallo,
Allgemein würde ich das Komma nicht als Operator benutzen, um Verwechselungen zu vermeiden.
das kommt sehr auf den Kontext an. In einer for-Schleife setze ich zum Beispiel sehr gern das Komma ein, wenn ich zwei Anweisungen für die Initialisierung der Schleife habe - oder auch zwei unabhängige Increments, wie etwa in Kopierschleifen mit parallel laufenden, aber nicht gleichen Indexen.
Beispiel:
for (z=0, n=1; z<16; z++, n<<=1)
{ bitmask[z] = n;
}
Solche Konstruktionen verwende ich sowohl in Javascript als auch in C gern. Allerdings - und da gebe ich dir Recht - sollte man sowas bewusst einsetzen und sich auch darüber im Klaren sein, dass ein Komma sowohl beim Lesen als auch beim Schreiben leicht mit einem Semikolon verwechselt werden kann.
Ciao,
Martin
Hello out there!
Ich möchte, das wenn ich auf einen <div> Container mit der Maus komme, das mehr onmouseover mehrere Scripte geladen werden!
Nein, es werden keine Scripte geladen, es werden Anweisungen ausgeführt oder Funktionen aufgerufen, die irgendwoanders im HTML-Quelltext eingebettet sind (am besten vorher) oder in einer externen JavaScript-Datei, in beiden Fällen ist das Script bereits geladen.
und beim andern soll sich die Statusleiste ändern!
Nein, das soll sie nicht!! Jedenfalls sollst du dort nichts reinschreiben, weil dort für den Nutzer wichtige Informationen angezeigt werden, z.B. wo ein Link hinführt. Moderne Browser lassen die Manipulation der Statuszeile deshalb auch gar nicht zu. Also Hände weg!
http://forum.de.selfhtml.org/archiv/2006/2/t124467/
<div onmouseover="script1 & script2 laden">
Wie werden denn in JavaScript mehrere Anweisungen hintereinander notiert? Tip: Der Zeilenumbruch ist optional.
See ya up the road,
Gunnar
Hello out there!
Der Zeilenumbruch ist optional.
Kann man so nicht sagen.
Der Zeilenumbruch ist optional, wenn hinter der Anweisung ein ';' steht. Das ';' ist optional, wenn ein Zeilenumbruch folgt.
See ya up the road,
Gunnar