Hashchange-Problemchen

  • Hashchange-Problemchen

    Hallo,
    ich habe folgendes Problem, wobei ich denke/hoffe das @Maddin: mir da ganz gut helfen kann. ;)

    Ich denke das ist kein großes Problem - hab nur das Gefühl der will nicht mit der .js-Datei arbeiten. Mein head-Bereich:

    HTML-Quellcode

    1. <head>
    2. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    3. <title><? echo $Seitentitel; ?></title>
    4. <link href='http://fonts.googleapis.com/css?family=Ubuntu:400,700italic' rel='stylesheet' type='text/css'>
    5. <link href='http://fonts.googleapis.com/css?family=Francois+One&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
    6. <link rel="stylesheet" href="style.php" type="text/css">
    7. <script src="http:jquery.ba-hashchange.min.js"></script>
    8. <script src="jquery.js"></script>
    9. <script type="text/javascript">
    10. $(document).ready(function() {
    11. $('#Loginfenster').hide('fast');
    12. $('#statsContainer').hide('fast');
    13. $('#correct').hide('fast');
    14. $('#loginMenue').click(function() {
    15. $('#Loginfenster').hide('slow');
    16. $('#correct').show('slow');
    17. $('#Loginfenster').show('slow');
    18. })
    19. $('#newsMenue').click(function() {
    20. $('#statsContainer').hide('slow');
    21. $('#newsContainer').show('slow');
    22. })
    23. $('#statsMenue').click(function() {
    24. $('#newsContainer').hide('slow');
    25. $('#statsContainer').show('slow');
    26. })
    27. });
    28. function get() {
    29. $.post('login.php', { Name: loginForm.Name.value, Passwort: loginForm.Passwort.value },
    30. function(output) {
    31. $('#loginForm').hide('slow');
    32. $('#correct').show('slow');
    33. $('#correct').html(output).show();
    34. $('#correct').hide('slow');
    35. location.reload();
    36. });
    37. }
    38. function loadContent() {
    39. alert("Test1");
    40. $(window).hashchange( function(){ //das hashchange event, welches aufgerufen wird wenn sich der hash ändert.
    41. alert("Test2");
    42. var hash = (location.hash).replace('#', ''); //normal wäre der hash z.b "#startseite", aber wir wollen die raute nicht, weshalb wir sie durch replace entfernen, bzw. durch ncihts ersetzen.
    43. if(hash == '') { //Wenn der hash leer ist
    44. hash = '#news'; //übergeben wir "#startseite" an die variable
    45. location.hash = '#news'; //und ändern die URL
    46. }
    47. hash = hash.toLowerCase(); //den hash in kleinbustaben umwandeln
    48. $('#smallContainer').hide(); //main verstecken
    49. /*
    50. natürlich kann man anstatt hide() (dem einfachen ausblenden) auch
    51. $('#main').slideUp() / $('#main').slideDown() benutzen wenn die Seite hoch/runter scrollen soll, oder
    52. $('#main').fadeOut() um sie langsam verblassen zu lassen.
    53. */
    54. $('#smallContainer').load(hash + '.html', function(response, status, xhr) { //versuche pages/XYZ.html zu laden
    55. if (status == "error") { //Seite wurde nicht gefunden
    56. $('#smallContainer').load(hash + '.php', function(response, status, xhr) { //versuche pages/XYZ.php zu laden
    57. if (status == "error") { //Seite wurde nicht gefunden
    58. $('#smallContainer').load('404.php'); //404 Seite laden
    59. }
    60. });
    61. }
    62. });
    63. $('#smallContainer').show(); //main anzeigen
    64. });
    65. $(window).hashchange(); //Wir rufen das hashchange event beim ersetn seiten besuch auf
    66. }
    67. </script>
    68. </head>
    Alles anzeigen


    So. Er arbeitet soweit ganz gut, aber er geht nicht zu alert("Test2"); - ich vermute weil er wie gesagt diese "hashchange"-Datei nicht erkennen will.

    Oder gibt's 'n anderes Problem? Die URL sieht z.B. so aus:

    Quellcode

    1. http://localhost/Projekte/UCP/index.php#stats

    Kommt weder die "stats.php" in den Container noch die 404.php. :-x
  • Ah, klappt, hab's so gemacht:

    HTML-Quellcode

    1. <head>
    2. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    3. <title><? echo $Seitentitel; ?></title>
    4. <link href='http://fonts.googleapis.com/css?family=Ubuntu:400,700italic' rel='stylesheet' type='text/css'>
    5. <link href='http://fonts.googleapis.com/css?family=Francois+One&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
    6. <link rel="stylesheet" href="style.php" type="text/css">
    7. <script src="http:jquery.ba-hashchange.min.js"></script>
    8. <script src="jquery.js"></script>
    9. <script type="text/javascript">
    10. $(document).ready(function() {
    11. $('#Loginfenster').hide('fast');
    12. $('#statsContainer').hide('fast');
    13. $('#correct').hide('fast');
    14. $('#loginMenue').click(function() {
    15. $('#Loginfenster').hide('slow');
    16. $('#correct').show('slow');
    17. $('#Loginfenster').show('slow');
    18. })
    19. $('#newsMenue').click(function() {
    20. $('#statsContainer').hide('slow');
    21. $('#newsContainer').show('slow');
    22. })
    23. $('#statsMenue').click(function() {
    24. $('#newsContainer').hide('slow');
    25. $('#statsContainer').show('slow');
    26. })
    27. });
    28. function get() {
    29. $.post('login.php', { Name: loginForm.Name.value, Passwort: loginForm.Passwort.value },
    30. function(output) {
    31. $('#loginForm').hide('slow');
    32. $('#correct').show('slow');
    33. $('#correct').html(output).show();
    34. $('#correct').hide('slow');
    35. location.reload();
    36. });
    37. }
    38. </script>
    39. <script src="http:jquery.ba-hashchange.min.js"></script>
    40. <script type="text/javascript">
    41. function loadContent() {
    42. $(window).hashchange( function(){ //das hashchange event, welches aufgerufen wird wenn sich der hash ändert.
    43. var hash = (location.hash).replace('#', ''); //normal wäre der hash z.b "#startseite", aber wir wollen die raute nicht, weshalb wir sie durch replace entfernen, bzw. durch ncihts ersetzen.
    44. if(hash == '') { //Wenn der hash leer ist
    45. hash = '#news'; //übergeben wir "#startseite" an die variable
    46. location.hash = '#news'; //und ändern die URL
    47. }
    48. hash = hash.toLowerCase(); //den hash in kleinbustaben umwandeln
    49. $('#smallContainer').hide(); //main verstecken
    50. /*
    51. natürlich kann man anstatt hide() (dem einfachen ausblenden) auch
    52. $('#main').slideUp() / $('#main').slideDown() benutzen wenn die Seite hoch/runter scrollen soll, oder
    53. $('#main').fadeOut() um sie langsam verblassen zu lassen.
    54. */
    55. $('#smallContainer').load(hash + '.html', function(response, status, xhr) { //versuche pages/XYZ.html zu laden
    56. if (status == "error") { //Seite wurde nicht gefunden
    57. $('#smallContainer').load(hash + '.php', function(response, status, xhr) { //versuche pages/XYZ.php zu laden
    58. if (status == "error") { //Seite wurde nicht gefunden
    59. $('#smallContainer').load('404.php'); //404 Seite laden
    60. }
    61. });
    62. }
    63. });
    64. $('#smallContainer').show(); //main anzeigen
    65. });
    66. $(window).hashchange(); //Wir rufen das hashchange event beim ersetn seiten besuch auf
    67. }
    68. </script>
    69. </head>
    Alles anzeigen