ďťż
Podstrony
|
telcocafeMam problem ze skryptem:w sekcji <head> mam <script type="text/javascript"> function pokaz(str) { var pozycjemenu = new Array ("Home","Kontakt","Katalog produktów","Dodaj do ulubionych","Mapa strony","polski","deutsch","english"); document.getElementById("tekstmenu").style.visibility = "visible"; var ciag=pozycjemenu[str]; return ciag; } function ukryj() { document.getElementById("tekstmenu").style.visibility = "hidden"; } </script> następnie w jednym z div-ów w <body> <script type="text/javascript"> document.write(ciag); </script> wywołanie w innym div-ie wygląda tak <img src="./grafika/home_ico.png" alt="Strona domowa" class="d_ikony" onmouseover="pokaz(0);" onmouseout="ukryj();" /> Oczywiście wywołań jest kilka (dla wszystkich odnośników w menu odpowiednio z pokaz(0) do pokaz(7)). Moje pytanie: co jest nieprawidłowo napisane w kodzie i powoduje brak reakcji przy najechaniu myszą na obrazek menu? Proszę o podanie rozwiązania problemu, dodam że zakładałem że funkcja pokaz() zwróci zmienną ciąg i będę mógł ją wypisać przy użyciu metody document.write(). Nie wiem czy to błędne założenie czy coś innego w kodzie się nie zgadza? funkcje nie ustawiają zmiennej tylko zwracają samą wartość. Najlepiej było by zrobić tak, żeby funkcja ustawiała zawartość diva, bez zabawy z document.write. Użytkownik someone edytował ten post 28 lipiec 2009, 22:24 A ja polecam CSS do tego typu spraw. Nie potrzeba JS :) Możesz podejrzeć własności CSS i znaczniki XHTML za pomocą Firebug, aby zobaczyć, jak to jest zrobione. Przy okazji nie skomplikuj kodu - im mniej, tym szybciej. http://www.cssplay.c...s/dd_valid.html http://examples.code...nu/HCSSMenu.php http://webpagemenu.c...ading-menu.html Użytkownik Ferrari edytował ten post 29 lipiec 2009, 00:34 A ja polecam CSS do tego typu spraw. Nie potrzeba JS :) Możesz podejrzeć własności CSS i znaczniki XHTML za pomocą Firebug, aby zobaczyć, jak to jest zrobione. Przy okazji nie skomplikuj kodu - im mniej, tym szybciej. http://www.cssplay.c...s/dd_valid.html http://examples.code...nu/HCSSMenu.php http://webpagemenu.c...ading-menu.html Wiem, że takie menu jak pokazałeś w tych przykładach można zrobić za pomocą CSS ale mi chodzi o inny rodzaj menu. Nie ma żadnych rozwijanych list tylko po najechaniu na obrazek w menu ma się pokazywać jego opis, a nie pozycje w podmenu. Poza tym menu nie jest "zbite" w jednym div-ie tylko ikony menu są w jednym div-ie, a podpisy (opisy) ikon mają się wyświetlać w innym. funkcje nie ustawiają zmiennej tylko zwracają samą wartość. Najlepiej było by zrobić tak, żeby funkcja ustawiała zawartość diva, bez zabawy z document.write. Rozumiem, że funkcja zwraca wartość, ale żeby ją później wykorzystać (nie wywołując ponownie funkcji) należy przypisać ją do zmiennej. Jak proponujesz ustawić zawartość div-a bez document.write ? var div = document.getElementById('id_diva'); div.innerHTML = 'Jego zawartość'; //Ewentualnie możesz użyć funkcji DOM: var el = document.createElement('nazwa_znacznika'); el.atrybut = 'wartość'; div.appendChild(el); var div = document.getElementById('id_diva'); div.innerHTML = 'Jego zawartość'; //Ewentualnie możesz użyć funkcji DOM: var el = document.createElement('nazwa_znacznika'); el.atrybut = 'wartość'; div.appendChild(el); Dziękuję za pomoc, udało mi się właśnie rozwiązać ten problem dzięki document.getElementById('id_div-a').innerHTML = "Tekst div-a". Jakby ktoś chciał skorzystać, to podaję rozwiązanie: w sekcji <head> <script type="text/javascript"> <!-- var pozycjemenu = new Array("Home","Kontakt","Katalog produktów","Dodaj do ulubionych","Mapa strony","polski","deutsch","english"); function pokaz(str) { document.getElementById('tekstmenu').innerHTML = pozycjemenu[str]; document.getElementById("tekstmenu").style.visibility = "visible"; } function ukryj() { document.getElementById("tekstmenu").style.visibility = "hidden"; } --> </script> Wywołanie <img src="./grafika/home_ico.png" alt="Strona domowa" class="d_ikony" onmouseover="pokaz(0);" onmouseout="ukryj();" /> Użytkownik Poldas edytował ten post 29 lipiec 2009, 11:16 |
|||
Sitedesign by AltusUmbrae. |