Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][CSS][AJAX] a href nie działa
Forum PHP.pl > Forum > Przedszkole
zaaap
Witam,
Aby urozmaicic strone postanowilem zapodac jquery. Wszystko działa kiedy jest na pustej stronie, ale kiedy to wrzuce do konkretnego zastosowania to nie moge klikac linkow.
Może na poczatek dam kod jedynie od tego menu:

  1. <div id="nav">
  2. <ul id="nav">
  3. <li style="margin-left: 0px;"><a class="current" href="homepage.html">Home</a></li>
  4. <li><a href="opcje.html">Opcje</a></li>
  5. <li><a href="omnie.html">O mnie</a></li>
  6. </ul>
  7.  
  8. </div>
  9. <div id="wrapper"></div>

Jescze kod wleje:

  1. <style type="text/css">
  2. #wrapper { margin:0px auto; text-align:left; width:600px; z-index: 1000 }
  3. .container1 { width:100%; }
  4. .container1 ul li { margin:5px 0 0 0;}
  5. .container1 ul li a { text-decoration:none; color:#666; font-weight:bold;}
  6. .container1 ul li a:hover { color:white;}
  7. #nav { padding:10px 10px 10px 10px; margin:0; z-index: 600; }
  8. #nav ul { padding:0; margin:0}
  9. #nav ul li { display:inline; list-style:none; margin-left:10px }
  10. #nav ul li a { padding:10px; background-color:#18a0c8; color:white; text-decoration:none; }
  11. #nav ul li a:hover,
  12. #nav ul li a.current { color:white; background:#66cc00 }
  13. #loading {position:absolute;left:0;top:0;padding:10px 15px;background:#66cc00;color:white;display:none;}
  14. #nav { margin:50px auto 0px auto; text-align:left; width:600px; }
  15. #footer { padding:10px; font:normal 11px/normal Helvetica;}
  16. #footer a { text-decoration:none; color:#999;}
  17. #footer a:hover { color:#000; }
  18. </style>

Kod
             <script type="text/javascript">
                 //1
         $(function () {
             //2
             function ajaxify(file){
                 //3
                 $('<div id="loading"></div>').html("Pobieranie danych z: "+file+" ...").appendTo('body').fadeIn();
                 //4
                 $.get(file,function(data) {
                     //5
                     $("#wrapper").slideUp('slow',function(){
                         //6
                         $(this).html(data).slideDown('slow',function(){
                             //7
                             $('#loading').fadeOut('slow',function(){$(this).remove();});
                         });
                     });
                 });
             }
    
             //8
             $("div#nav ul li a").click(function(){
                 //9
                 $('#nav ul li a.current').removeClass('current');
                 //10
                 $(this).addClass('current');
                 //11
                 ajaxify($(this).attr('href'));
                 //12
                 return false;
             });                        
    
             //13
             ajaxify('homepage.html');            
    
         });
            
             </script>

Jakies pomysly? Sadzilem ze cos przesłania moze te warstwy klikalne, lecz nic nad nimi nie ma (a przynajmniej tak mi sie zdaje).
hiszpanespaniol
na jednej stronie może być tylko jeden element o tym samym id (ty masz div#nav oraz ul#nav). strona sama w sobie może się jeszcze jakoś wyświetli, ale js sobie pewnie z tym nie radzi. Skasuj/zamień któryś id i powinno pomóc



pozdrawiam
zaaap
Cytat(hiszpanespaniol @ 13.12.2008, 01:28:29 ) *
na jednej stronie może być tylko jeden element o tym samym id (ty masz div#nav oraz ul#nav). strona sama w sobie może się jeszcze jakoś wyświetli, ale js sobie pewnie z tym nie radzi. Skasuj/zamień któryś id i powinno pomóc



pozdrawiam

Tylko, ze trik w tym, iz ja do kodu sie nie dotykalem i w takiej formie on trybi na zupelnie pustej / tutorialowej stronie.
hiszpanespaniol
w takim razie na stronie tutorialowej był błąd. popraw go. nikt nie jest nieomylny. jestem pewien, że taki kod jest błędny. Nawet jeśli to zadziała, to zadziała źle. usuń id z listy, bo z tego co widzę js dociera do elementów opierając się o div#nav. id przypisane liście nie ma znaczenia tutaj.
zaaap
Po unieciu (dalem class zamiast id) menu wyglada tak:
-Home
-Opcje
-O mnie

Czyli zwykle wypunktowanie bez zadnego stylu

tzn mam na mysli, ze zupełnie rozwalilo uklad menu, ktore bylo poziome
hiszpanespaniol
czyli usunąłeś id zarówno z diva i listy? patrzę na css i tak jak pisałem w poprzednim poście - trzeba usunąć id z listy, w divie zostawić. ale to i tak nie jesst w temacie wątku. problem jest czemu nie działa. skrypt jest napisany dla diva który ma id "nav" i w którym znajduje się lista nieuporządkowana. i wg tego rób html (bo css jest dobry)
zaaap
Teraz syt wyglada tak:
w cssie jest jeden #nav. W kodzie są oba (div id i ul id), bo tylko tak da sie zmusic menu do zakładanego wygladu. Linki dalej nie działają, tu moze do tutka dam link -> KLIK
hiszpanespaniol
Ty:
Cytat
"tylko że ja do kodu sie nie dotykałem"
  1. <div id="nav">
  2. <ul id="nav">

tutorial:
  1. <div id="nav">  
  2.   <ul> 

powatarzam: dwa takie samo id na tej samej stronie to błąd. nieważne nawet jak było w tutorialu, musisz czytać i nie wierzyć na ślepo. należy usunąć id z listy. czemu nie słuchasz?  dobranoc.
zaaap
Rzeczywiscie, ale nie wiem skad sie to tam wzielo, wiem głupio brzmi, nie wiem no jakis chohlik drukarski (kopiowalny) czy cos. Anyway, dalej a href nie działa :/ (Chociaz jestem wdzieczny za dotychczasowa pomoc)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.