JQeury und JS nicht aktiv

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • JQeury und JS nicht aktiv

    Hi, folgendes Problem.

    Ich habe dieses JQeury,

    Code:
    <script type="text/javascript">
    $(document).ready(function(){	
    $("#ticker").easySlider({
    controlsBefore:	'<p id="controls">',
    controlsAfter:	'</p>',
    auto: true, 
    continuous: true
    });
    });	
    </script>
    Das ist ein Ticker, der mir diverse Einträge aus der
    Datenbank rotieren lässt.
    Da ich mit Smarty arbeite, binde ich das entsprechende Element,
    also das Div was darauf dann ausgegeben wird in eine foreach schleife ein.

    <div> <--- overflow=hidden

    {foreach}
    <div> text </div>
    {/foreach}

    </div>

    Es funktioniert auch alles prima.
    Mein Problem ist nur das, wenn der Besucher kein Javascript aktiviert hat,
    werden alle divs, also alle Einträge aus der DB kommend auf die Seite übertragen und bleibt nicht im div Rahmen.
    Das bedeutet also, das jeder Eintrag ordentlich über die ganze Seite fließt.
    mit <noscript> komme ich ja in diesem fall nicht weiter.

    Hat vielleicht irgendjemand eine Idee, wie ich diesen Teil, am liebsten den ganzen div bereich ausschließen kann wenn kein JS aktiv ist?

    Nun hab ich da an php gedacht.
    Es wäre ja nicht verkehrt php erkennen zu lassen ob JS aktiv ist.
    Wenn nein, kann ich mit entsprechenden variablen meinen div bereich ausklammern.
    Geht sowas mit php überhaupt? Wenn ja, wäre ich für Tipps sehr dankbar

    Schöne Grüße, Marcus

  • #2
    Wenn ich dich richtig verstanden habe, sollen die entsprechenden Divs nicht angezeigt werden. Dann blend sie direkt mit display: none aus und mit Javascript dann wieder ein.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      mh..ne das geht nicht, weil standartmäßig wenn javascript aktiv ist, soll er ja angezeigt bleiben.
      Gibts da keine php möglichkeit?

      edit: falsch verstanden..gute idee, probier ich mal aus..dankesehr

      Kommentar


      • #4
        Deswegen sollst du ihn ja mit JS wieder einblenden, z. B. onload.

        PHP weiß nichts von dem, was in deinem Browser passiert.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          ja, habs ja dann verstanden

          aber in der praxis schein ich zu doof dafür zu sein.
          Hab das mal so probiert:

          <div style="display:none;">
          text
          </div>

          und JS:

          Code:
          <script type="text/javascript">
          window.onload = function() {
          document.getElementById('ticker').style.display = 'inline';
          }  
          </script>
          Bis hier funktioniert das zwar, aber inline ist nicht das richtige.
          Show funktioniert nicht.
          In der CSS referenz gibts auch kein Beispiel um das zu neutralisieren.
          Wie geh ich weiter vor?

          Kommentar


          • #6
            Du hast dem div kein id-Attribut mit dem Wert ticker gegeben. Das Standard-display eines divs ist außerdem block, nicht inline.
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Hi, ja sry,da haste recht. hatte ich beim tippen vergessen mit die id einzutragen.

              Im Quelltext hatte ich das aber.

              Code:
              <script type="text/javascript">
              window.onload = function() {
                  document.getElementById('ticker').style.display = 'block';
              }
              HTML-Code:
              <div id="ticker" style="display:none" >
              text
              </div>
              Auch mit Block funtioniert das nicht.
              Mit Inline bekomm ich das zwar angezeigt, aber falsch.
              Eine andere Idee?

              Eine php Lösung wäre mit sowieso lieber,
              das spart Tipparbeit und Ladezeit beim User wenn ich
              das mit php machen könnte.

              Kommentar


              • #8
                Zitat von Marcus-24-D Beitrag anzeigen
                Eine php Lösung wäre mit sowieso lieber,
                das spart Tipparbeit und Ladezeit beim User wenn ich
                das mit php machen könnte.
                Das geht aber nicht. Ich hatte ja schon geschrieben, dass PHP keine Ahnung haben kann, was im Browser passiert. Man könnte zwar eine Lösung stricken, aber die würde AJAX und einen Reload erfordern und damit alles andere als Ladezeit sparen.

                Edit: Dein JS-Code zum Wiederanzeigen des divs sieht korrekt aus, was aber nicht garantiert, dass er nicht z. B. aufgrund eines anderen Fehlers ignoriert wird. Hast du evtl. woanders noch einen window.onload-Handler, der diesen überschreibt?
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  danach hatte ich auch schon gesucht, aber nein, das ist der einzige auf der seite. Könnte aber vielleicht sein das dieser mit einer includierten js datei schon mitgesendet wird und dann überschrieben wird.
                  gibts ne andere Möglichkeit, evtl umschreiben?
                  Bin leider nicht so fundiert in javascript

                  Kommentar


                  • #10
                    Hast du ein Online-Beispiel? Dann seh ich mal nach.
                    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                    Super, danke!
                    [/COLOR]

                    Kommentar


                    • #11
                      klar..bin aber gerad noch ein wenig am rumbasteln

                      ***

                      ich editiere den link später wieder raus

                      ***
                      Zuletzt geändert von Marcus-24-D; 22.10.2010, 14:18.

                      Kommentar


                      • #12
                        Vielleicht magst du mir ja sagen, wo du den JS-Code versteckt hast, bzw. ob ich noch auf irgendeinen Link klicken muss, denn auf dieser Seite ist er nicht, geschweige denn das ticker-div.
                        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                        Super, danke!
                        [/COLOR]

                        Kommentar


                        • #13
                          Dass du dort JS-Code doppelt drin hast, weißt du aber? Wenn du willst, dass es funktioniert, solltest du das lassen.

                          Ändere einfach diese JQuery-Anweisung
                          PHP-Code:
                          $(document).ready(function(){    
                          $(
                          "#ticker").easySlider({
                          controlsBefore:    '<p id="controls">',
                          controlsAfter:    '</p>',
                          autotrue
                          continuoustrue
                          });
                          }); 
                          in
                          PHP-Code:
                          $(document).ready(function(){
                          $(
                          "#ticker").css("display""block");
                          $(
                          "#ticker").easySlider({
                          controlsBefore:    '<p id="controls">',
                          controlsAfter:    '</p>',
                          autotrue
                          continuoustrue
                          });
                          }); 
                          Die Seite hört nicht auf zu laden.
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar


                          • #14
                            ah, haste gefunden.
                            ne, wusste ich nicht.. muss ich gleich nochmal genauer schauen.
                            wo hast du denn was doppeltes entdeckt?

                            Du bist ein Held! Es funktioniert
                            Wie bist du denn darauf gekommen?

                            Ähm ja, er läd deshalb so lang weil noch alles unkomprimiert ist.

                            Kommentar


                            • #15
                              Das hat mit unkomprimiert nichts zu tun. Es lädt ewig (mehrere Minuten).

                              Das doppelte wirst du selbst finden. Du musst dir nur den Quelltext ansehen, musste ich ja auch und schön, übersichtlich, nachvollziehbar oder anderweitig gut finde ich den nicht.
                              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                              Super, danke!
                              [/COLOR]

                              Kommentar

                              Lädt...
                              X