Mam problem z JS. FireBug pokazuje taki oto błąd:
ReferenceError: $ is not defined $(document).ready(function(){
Podejrzewam, że źródłem problemu może być to, że moja strona jest budowana dynamicznie za pomocą PHP, który funkcją include dodaje nowe części strony z różnych plików.
Wygląda to u mnie tak:
// Dodanie komponentów strony: include('./schematy/standard/sekcjaNaglowek.php'); // w tym komponencie znajduje się właśnie odniesienie do skryptu, który sprawia problem include('./schematy/standard/sekcjaGora.php'); include('./schematy/standard/sekcjaStronaGlowna.php'); include('./schematy/standard/sekcjaStopka.php');
sekcjaNaglowek.php:
<?php // NAGŁÓWEK STRONY WYPEŁNIANY DYNAMICZNIE \\ // Zdefiniowanie strony i dostosowanie danych meta do wyniku // Dobór odpowiednich skryptów i styli if(IDENTYFIKATOR_STRONY == 'stronaGlowna') { $tytul = '<title>ENGO Strona Główna</title>'; $skryptJS = '<script type="text/javascript" src="./skrypty_java/stronaGlowna.js"></script>'; } // Wysłanie treści finalnej nagłówka - HEAD echo ' <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />' .$tytul.' <link href="./style_css/standard/uklad.css" rel="stylesheet" type="text/css" /> <link href="./style_css/standard/tresc.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./skrypty_java/sekcjaGora.js"></script> <script type="text/javascript" src="./skrypty_java/sekcjaStopka.js"></script>' .$skryptJS.' </head>'; ?>
Dodam jeszcze treść tego skryptu:
// WCZYTANIE WSZYSTKICH FUNKCJI SEKCJI STRONY GŁÓWNEJ: $(document).ready(function(){ przyciskZalogujSie(); przyciskZarejestrujSie(); }); // FUNKCJE: function przyciskZalogujSie(){ $('#panelUzytkownika').on('click', 'input[name="zaloguj"]', function(){ alert('Kliknąłeś zaloguj się'); }); } function przyciskZrejestrujSie(){ $('#panelUzytkownika').on('click', 'input[name="rejestruj"]', function(){ alert('Kliknąłeś zarejestruj się'); }); }
Moja teoria jest taka, że PHP dołączają ten pierwszy plik "sekcjaNaglowek.php" od razu wysyła do przeglądarki odwiedzającego, ta następnie ją od razu interpretuje i kończy swoją interpretację tylko na HEAD, a chwilę potem otrzymuje kolejne treści strony - czyli "sekcjaGora", "stronaGlowna" i "sekcjaStopka".
Stąd chyba pochodzi ten problem.
Pytanie tylko, czy dobrze myślę i jak można rozwiązać ten problem?
Lub
Może problem tkwi w czym innym.