| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
Amun_RA Gast
|
Ich finde den Fehler nicht |
|
|
hey ich hoffe mir kann hier jemand weiter helfen
Ich moecht ene kleien webpage einrichten, dazu mochte ich ein kleines "dynamisches"-menue erstellen.
Normalerweise code ich keine webpages, daher könnte man wohl vieles besser machen (hab vorallemd en javascript teil ehr "copy paste and adopt" mäßig gemacht)
nun zum code:
| PHP-Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| <style type="text/css">
<!--
a:link {
color: #ffff00;
font-size: 14px;
}
a:visited {
color: #00ff00;
font-size: 14px;
}
a:active {
color: #ff0000;
font-size: 14px;
font-family: 'Comic Sans MS';
}
a:hover {
color: #ffff00;
font-size: 14px;
font-family: 'Comic Sans MS';
}
-->
</style>
<?php
error_reporting(E_ALL);
ini_set("display_errors",true);
$menue="home";
function create_button($name,$link,$sublinks){
global $menue;
if($menue!=$name){
echo '<script type="text/javascript">
function exchange_by_over_'.$name.'(){
document.getElementById(\''.$name.'_table\').innerHTML ="
<a href=\''.$link.'\'><img
onmouseover=\''.$name.'_red();\'
onmouseout=\''.$name.'_yellow();\' id=\''.$name.'_button\' alt=\'\'
src=\'menue/link_bild.php?text='.$name.'&status=up\'
style=\'border: 0px solid ; width: 130px; height: 43px; background-color: yellow;\'></a><br>
'.$sublinks.'"
}
function exchange_by_out_'.$name.'(){
document.getElementById(\''.$name.'_table\').innerHTML ="
<a href="'.$link.'"><img
onmouseover="'.$name.'_button.style.backgroundColor=\'red\';"
onmouseout="'.$name.'_button.style.backgroundColor=\'yellow\';" id="'.$name.'_button" alt=""
src="menue/link_bild.php?text='.$name.'&status=up"
style="border: 0px solid ; width: 130px; height: 43px; background-color: yellow;"></a><br>"
}
function '.$name.'_red(){
'.$name.'_button.style.backgroundColor=\'red\';
}
function '.$name.'_yellow(){
'.$name.'_button.style.backgroundColor=\'yellow\';
}
</script>
';
echo '<tr><td id="'.$name.'_table" onmouseover="exchange_by_over_'.$name.'();" onmouseout="exchange_by_out_'.$name.'();">';
echo '<a href="'.$link.'"><img
onmouseover="'.$name.'_button.style.backgroundColor=\'red\';"
onmouseout="'.$name.'_button.style.backgroundColor=\'yellow\';" id="'.$name.'_button" alt=""
src="menue/link_bild.php?text='.$name.'&status=up"
style="border: 0px solid ; width: 130px; height: 43px; background-color: yellow;"></a><br>';
}
else{
echo '<tr><td>';
echo '<a href="'.$link.'"><img
onmouseover="'.$name.'_button.style.backgroundColor=\'red\';"
onmouseout="'.$name.'_button.style.backgroundColor=\'yellow\';" id="'.$name.'_button" alt=""
src="menue/link_bild.php?text='.$name.'&status=down"
style="border: 0px solid ; width: 130px; height: 43px; background-color: yellow;"></a><br>';
echo $sublinks;
}
echo '</td></tr>';
};
?>
<table border="0" width="148" cellpadding="0" cellspacing="0">
<?php
create_button("home","ich_menue.html","hallo"); //zum testen
create_button("home2","ich_menue.html","hallo2");
?>
</table> |
So also das Button erstellen und so funktioniert alels auch das onmouseover/out mit der hintergrundfarbe läuft super.
Allerdings das ausklappen bzw. einkappen beim mouseover/out der tabelle funktioniert nicht.
ich vermute mal das die doppeltverwendung von " ein problem ist/war, daher habe ichim onmouseover teil dies versucht zu umgehen aber dies bracht bisher keinen erfolg. (momentan sind die aufzuklappenden links noch nur text zum ausprobieren) |
|
|
|
| 07 Aug 2011 15:03 |
|
  |
Werner Homepage-Total.de Moderator

|
 |
|
|
Da ist ein JavaScript-Fehler drin!
Wie du schon richtig erkannt hast sind die doppelten Anführungszeichen daran Schuld!
Beim Firefox die JavaScript-Konsole anschalten, dieser zeigt dann das folgende:
Ich habe mal die doppelten Anführungszeichen hervorgehoben:
http://www.homepage-total.de/test/netz/2469_2.png |
_________________ Bei Fragen oder Fehlermeldungen - Bitte ausführlichen Code posten!
Wie man Fragen richtig stellt |
|
|
| 07 Aug 2011 17:39 |
|
 |
Amun_RA Gast
|
danke |
|
|
Danke das hat mir sehr geholfen, hab alles in eine zeile geschrieben dann ging es und denn zweiten teil wie den ersten.
mir war nicht klar das ein zeilenumbruch eine rolle spielt.
naja leider funktioniert es immernoch ncith so wie gedacht, in opera verschwindet alles fast sofort wieder wenn ich die maus weiter bewege in firefox kann ich dann die links nciht mehr anklicken und der (sub-)onmouseover funktioniert nicht mehr.
Woran liegt das? Kann man da was machen? |
|
|
|
| 07 Aug 2011 18:34 |
|
 |
Werner Homepage-Total.de Moderator

|
 |
|
|
Im Firefox und Chrome funktioniert es,
im Opera und I.Explorer nicht.
Habe einige Tests durchgeführt aber keine Lösung gefunden.
Bevor ich ein JavaScript in PHP einbaue, teste ich es zuvor
in allen Browsern. |
_________________ Bei Fragen oder Fehlermeldungen - Bitte ausführlichen Code posten!
Wie man Fragen richtig stellt |
|
|
| 07 Aug 2011 20:13 |
|
 |
Amun_Ra Gast
|
mhhh |
|
|
| gibt es einen aderen weg mit php html und javascript das umzusetzen was ich vor habe (also bei mouseover dieses scroll down menue) ? |
|
|
|
| 07 Aug 2011 20:31 |
|
 |
Werner Homepage-Total.de Moderator

|
 |
|
|
Ich habe jahrelang dieses Menü gehabt,
die Pflege war jedoch sehr aufwändig und irgendwann hat es nur noch genervt.
Heute bin ich der Meinung das eine Navigation ohne JavaScript besser ist (Stichwort: Barrierefreiheit).
Wenn du das JavaScript nach deiner Aussage nur mit "copy paste and adopt" mäßig gemacht hast,
muss es irgendwo auch ein Original geben und dieses hat sicher nicht nur im Firefox-Browser funktioniert.
Vielleicht hat sich beim kopieren und anpassen ein Fehler eingeschlichen? |
_________________ Bei Fragen oder Fehlermeldungen - Bitte ausführlichen Code posten!
Wie man Fragen richtig stellt |
|
|
| 08 Aug 2011 07:12 |
|
 |
Amun_Ra Gast
|
|
| 08 Aug 2011 08:49 |
|
 |
VincentVegas Gast
|
Da stimmt doch was nicht |
|
|
function togglein(obj) {
var el = document.getElementById(obj);
if ( el.style.display != 'block' ) {
el.style.display = 'block';
}
ist sinnlos.
el.style.display ist danach auf jeden Fall = "block", also kann man die Abfrage auch weglassen und es gleich setzen. Aber so war das sicher nicht gedacht, oder?
Viele Grüße
Thomas |
|
|
|
| 24 Okt 2011 11:48 |
|
 |
|