Login  Regeln Aktuelles Datum und Uhrzeit: 04.12.2008, 22:17  
Startseite
Registrieren
Profil
Suchen
Mitgliederliste
Verzeichnis
Impressum



Partner
kostenlose Homepage
Fussball
Kostenloses Forum
SMS kostenlos
Webhosting
Webmasterportal
Kostenlos
Kredit ohne Schufa
Esoterik-Forum
Selbsthilfeforum
Artikel Backlink
Datenrettung
Brauche Hilfe bei Javascript-Code

 
Neues Thema eröffnen   Neue Antwort erstellen    Webmaster Forum -> HTML & CSS
Vorheriges Thema anzeigen Nächstes Thema anzeigen 
Autor Nachricht
fabarazzi
Stammuser [User]
Stammuser



Anmeldung: 29.12.07
Beiträge: 32
Wohnort: Augsburg

BeitragVerfasst am: 29.12.2007, 11:27    Titel: Brauche Hilfe bei Javascript-Code Antworten mit Zitat

Hi erstmal..Ich hab mir gestern ein Menü Zusammengeschrieben mit Javascript. Das Problem ist bei der "else" Abfrage. Wenn ich dieses Menü nun anschaue, schließt es sich nach der angegeben Zeit wieder, auch wenn ich mit der Maus noch drauf bin. Wenn ich jetzt das hier: "window.setTimeout..." mit dem hier ersetze: "document.getElementById(..).style.display=..." funktionierts. Warum? Kann mir einer von euch weiterhelfen? Hier erst mal der Code:
Code:

<script type="text/javascript" language="JAVASCRIPT">
  function menus(mode,menu)
  {   
    if(mode=='s')
    {
      document.getElementById(menu).style.display='block';
    }
    else
    {
window.setTimeout('document.getElementById("'+menu+'").style.display="none";', 700);
    }
  }
  </script>

und hier das zugehörige HTML
Code:

<div class="headpoint" onmouseover="menus('s', 'team')" onmouseout="menus('h', 'team')">
      Team
      <span style="display:none;" id="team">
        <a href="" class="link">Link #1</a>
        <a href="" class="link">Link #2</a>
        <a href="" class="link">Link #3</a>
        <a href="" class="link">Link #4</a>
        <a href="" class="link">Link #5</a>
        <a href="" class="link">Link #6</a>
      </span>
    </div>

Schon mal danke im voraus.


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
eforium
Bekannter [Mod]
Bekannter



Anmeldung: 20.01.06
Beiträge: 1349
Wohnort: Irgendwo i ...

BeitragVerfasst am: 29.12.2007, 19:27    Titel: Antworten mit Zitat

Ich hab keinen Plan so auf die schnelle, wieso das so ist, aber du könntest ja einfach das ohne Timeout verwenden weil das sowieso nur den PC belastet...
_________________
Deihro Internet Programming - Ihre Webseite zu angenehmen Konditionen
Sie suchen eine TemplateEngine? Klicken Sie!


Nach oben
Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
fabarazzi
Stammuser [User]
Stammuser



Anmeldung: 29.12.07
Beiträge: 32
Wohnort: Augsburg

BeitragVerfasst am: 30.12.2007, 13:58    Titel: Antworten mit Zitat

Danke, aber wenn das den PC so stark belastet, gibt es dann auch andere Möglichkeiten diese Menü nach einer gewissen Zeit zu schließen (Alternative zu setTimeout)?
(Ich kenn mich mit JavaScript nämlich auch nicht so aus)


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
Professor
Stammuser [User]
Stammuser



Anmeldung: 02.11.07
Beiträge: 34

BeitragVerfasst am: 30.12.2007, 17:13    Titel: Antworten mit Zitat

hallo

das problem besteht darin, dass obwohl das mouseover und mouseout
in einem div container gesetzt sind, zwischen den einzelnen elementen
wie link1 und link2 kleine zwischenräume bestehen, die das mouseout
ansprechen

dieses problem läßt sich aber mit einer etwas anderen anordnung des timeout
befehls und einer kleinen hilfsvariablen umgehen

Code:

<script type="text/javascript" language="JAVASCRIPT">
  var over="no";
  function menu_in(menu) {
      document.getElementById(menu).style.display='block';
      over="yes";
  }
  function menu_out(menu) {
      over="no";
      window.setTimeout("menu_off('"+menu+"')", 700);
  }
  function menu_off(menu) {
      if(over !="yes") {
         document.getElementById(menu).style.display="none";
      }
  }
</script>


der übersichtheitshalber habe ich die mouseover und mouseout
in separate funktionen gepackt

Code:

onmouseover="menu_in('team');" onmouseout="menu_out('team');"


prof.


Nach oben
Private Nachricht senden
fabarazzi
Stammuser [User]
Stammuser



Anmeldung: 29.12.07
Beiträge: 32
Wohnort: Augsburg

BeitragVerfasst am: 30.12.2007, 20:37    Titel: Antworten mit Zitat

Cool danke, es klappt, aber so ganz hab ich das noch nicht kapiert.
Die Links sind bei mir durch eine CSS-Klasse auf display:block; gestellt, außerdem wenn ich das ganze ohne window.setTimeout anwede, klappt alles auch bei meinem Code super.
Kannst du mir das vielleicht nochmal erklären?


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
Professor
Stammuser [User]
Stammuser



Anmeldung: 02.11.07
Beiträge: 34

BeitragVerfasst am: 30.12.2007, 23:57    Titel: Antworten mit Zitat

richtig, rein von der menschlichen logik her würde man
tatsächlich annehmen, dass der div container in dem die
mouseover und mouseout befehle verankert sind für
den gesamten bereich gelten sollten

tatsächlich verhält es sich mit einem solchen element aber
etwas anders, ersetzte doch testweise einmal den gesamten
settimeout in deinem original script mit einem alert("test")

dann sieht man, dass die im übergeordenten container
festgesetzen befehle auch bei jedem sogenannten kindknoten
innerhalb dieses elementes ausgeführt werden

das hängt mit der objektorientierten programmierung von
javascript zusammen bzw. mit der struktur von html elemten
(elternknoten - kindknoten)

in deinem beispiel wäre <div> der elternknoten und der erste
kindknoten das wort team gefolgt von einem erneuten elternknoten
<span> in dem dann wiederum kindknoten (die links) enthalten sind

muss man sich wie eine schachtel in der schachtel in der schachtel
vorstellen

ist schon ein wenig zum verrückt werden, weil man das ebend so
auch nicht vermuten würde

prof.


Nach oben
Private Nachricht senden
fabarazzi
Stammuser [User]
Stammuser



Anmeldung: 29.12.07
Beiträge: 32
Wohnort: Augsburg

BeitragVerfasst am: 31.12.2007, 17:48    Titel: Antworten mit Zitat

Danke für die Antwort, ich glaub ich habs kapiert. Ich wünsch Dir einen guten Rutsch..

Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

Gehe zu:  

Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Brauche Abgerundete Ecken A74 Grafik-Forum 0 03.12.2008, 21:47 Letzten Beitrag anzeigen
Keine neuen Beiträge suche hilfe bei trikot erstellung in ... Barnetto Grafik-Forum 0 29.11.2008, 02:22 Letzten Beitrag anzeigen
Keine neuen Beiträge Suche Hilfe beim Studium..... Nana Kleinanzeigen 2 25.11.2008, 08:37 Letzten Beitrag anzeigen
Keine neuen Beiträge Mausverfolgerproblem Flash / Javascript jonatan_männchen HTML & CSS 1 19.11.2008, 19:47 Letzten Beitrag anzeigen
Keine neuen Beiträge Javascript Hilfe Erdenbuerger Einsteigerforum 7 18.11.2008, 17:01 Letzten Beitrag anzeigen
Threadübersicht