| (Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI... |
Diskussion: Initialisierunsproblem mit JS[erledigt] im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Hallo! Wenn man Funktionen mittels ... <body onload="function()"> ... ausführt ist deren Ergebnis,sobald die Seite einsatzbereit ist, weg. Wie kann ...
![]() |
| | #1 (permalink) |
| Senior Member Registriert seit: 12.06.07 ![]() Likes: 0 | Initialisierunsproblem mit JS[erledigt] Hallo! Wenn man Funktionen mittels ... <body onload="function()"> ... ausführt ist deren Ergebnis,sobald die Seite einsatzbereit ist, weg. Wie kann ich das verhindern? Aktuelles Problem: Eine Liste mit mehreren Elemeneten,welchen ich eine Funktion zuweisen wollte, nur leider funktioniert das nicht so wie gedacht. zZ ist meine LIste noch sehr klein und es ist deswegen eigentlich gut Möglich das so per hand zu machen aber bei grossen Listen wäre ich sehr dankbar wenn ich auf diese Weise getElementsByName benutzen könnte. Minimalbeispiel mfg sw33t
__________________ Nur die Schwachen klammern sich an die Moral. Kill my daemons and my angels will follow them. |
| | |
| | #2 (permalink) |
| Hallo, du musst die Events auch an #stupid anhängen, nicht an #output. #output ist zu Beginn nicht sichtbar und empfängt deswegen kmeinen mouseover-event. Außerdem: Events sind keine zeichenketten, sondern Funktionen. Du kannst bei der Zuweisung einen Funktionsnamen angeben (ohne Parameter) oder eine anonyme Funktion definieren: Code: document.getElementById("stupid").onmouseover = function() { noway(document.getElementById("stupid")); };
document.getElementById("stupid").onmouseout = function() { everyway(); };
__________________ Wenn keiner zuschaut, teile ich heimlich durch Null! Meine Homepage: Planet Metax | meine Bilder: DeviantArt | Twitter | |
| | |
| HaBOT | |
| |
| | #3 (permalink) |
| Senior Member Themenstarter Registriert seit: 12.06.07 ![]() Likes: 0 | das mit den anonymen funktionen kannte ich bisher nur von anderen Programmiersprachen.danke. b2t: Das mit den Zeichenketten und dem output anstelle von stupid, waren schreibfehler, war sehr gar gestern abend. Mein Problem bleibt bestehen. Falls es hilft Browser ist FF3.5.3. Hier mal der wichtigste Auszug aus dem gestesteten Code: Code:
<html>
<head>
<title>asdasd</title>
</head>
<script type="text/javascript" language="JavaScript">
function noway( element){
document.getElementById("output").innerHTML = element.id;
document.getElementById("t"+element.id).style.backgroundColor ="black";
}
function everyway(){
document.getElementById("output").innerHTML="";
document.getElementById("one").style.backgroundColor ="white";
}
function initialize(){/* sowohl das nicht auskommentierete aus auch das auskommentierte der funktion funktioniert nicht
var element = document.getElementsByName("link");
for(var i in element){
i.onmouseover = noway(this);
}*/
document.getElementById("four").onmouseover = noway(this);
}
</script>
<body onload="initialize()">
<div id="stupid" onmouseover="noway(this)" onmouseout="everyway()">Haha</div>
<br> <br>
<div id="output"></div>
<div id="list">
<ul>
<li><a name="link" id="seven" href="#">asasda</a></li>
<li><a name="link" id="eight" href="#">asdad</a></li>
</ul>
<ul>
<li><a name="link" id="nine" href="#">asdada</a></li>
<li><a name="link" id="ten" href="#">asdasd </a></li>
<li><a name="link" id="eleven" href="#">sfsdfsd</a></li>
<li><a name="link" id="twelve" href="#">asdasd</a></li>
</ul>
</div>
<div id="tseven">
hiih
</div>
<div id="teight">
hoho
</div>
<div id="tnine">
lala
</div>
<div id="tten">
tada
</div>
<div id="televen">
blub
</div>
<div id="ttwelve">
bla
</div>
</body>
</html>
__________________ Nur die Schwachen klammern sich an die Moral. Kill my daemons and my angels will follow them. |
| | |
| | #4 (permalink) |
| Registriert seit: 17.03.04 ![]() Likes: 1 | Hallo, dein Code enthält mehrere Fehler, zum einen wird Deine Funktion gleich beim zuweisen aufgerufen, und zum anderen weiß dein Browser ja nicht, dass this eigentlich auf das Element zeigen soll. Hier mal der angepasste JS Code: Code: function noway(e) {
e = (e) ? e : (window.event) ? window.event : "";
var element = (e.target) ? e.target : e.srcElement;
document.getElementById("output").innerHTML = element.id;
document.getElementById("t"+element.id).style.backgroundColor ="black";
}
function everyway() {
document.getElementById("output").innerHTML="";
document.getElementById("one").style.backgroundColor ="white";
}
function initialize() {
var element = document.getElementsByName("link");
for(var i = 0; i < element.length; i++) {
element[i].onmouseover = noway;
}
}
__________________ Mfg Basic Avid - Use it or be used! - |
| | |
![]() |
| | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Constructor[C++][Erledigt] | sw33tlull4by | Code Kitchen | 2 | 09.02.09 12:21 |
| TV-Karte [Erledigt] | Grafix | Kaufberatung | 3 | 07.10.06 22:15 |
| [C++ / Erledigt] Variable in Dateiname | reaLInsanity | Code Kitchen | 3 | 26.09.06 17:30 |
| MFC & Serialisierung -- ERLEDIGT | BuzzT | Code Kitchen | 0 | 13.04.06 14:50 |