tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von kuhlmaehn
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
697
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Bexx
    Bexx Bexx ist offline Programmer
    Registriert seit
    Feb 2009
    Ort
    Saarbrooklyn
    Beiträge
    222
    Hi Foris...


    Mir platzt gleich der Ars**... Sitze seit Stunden daran eine JavaScript basierte Navigation zu erstellen
    für eine LeftBar.
    Die Vorgehensweise ist soweit klar, doch hier der Fehler:

    Erst einmal stellte sich nach langem Suchen und Nichtsfinden heraus, dass man in einer XHTML-Datei auch
    innerhalb eines <script>- Tags die '<' - '>' Zeichen nicht verwenden kann (der Parser kann das nicht richtig interpretieren)...

    Naja, kein Beinbruch denkt sich die Azubine, wird der Mist halt ausgelagert...
    Von wegen

    Leider ist -egal in welcher Form ich das externe Script einbinde- keine der in der Datei enthaltenen Funktionen sichtbar.

    Wisst ihr wie sich das lösen lässt?

    Hier das Code-Example:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    
    <script type="text/javascript">
                navList = new Array("firstPage_page", "secondPage_page" , "thirdPage_page", usw...);
     
                jQuery(document).ready(function() {
     
                    jQuery('#leftBar').jcarousel({
                        start:0,
                        visible: 8,
                        vertical: true
                        }
                    );
     
                   /**
                   * Hides all elements
                   */
                    for(var i = 0; i < navList.length; i++){
                        jQuery('#'+ navList[i]).hide();
                    }
     
                });
     
     
    /**
     * renders a specific element to display content
     */
    function manageActivePages(activePage){
        for(var i = 0; i < navList.length; i++){
            if(navList[i] != activePage + "_page"){
                jQuery('#'+navList[i]).hide();
            }
            else{
                jQuery('#'+activePage + "_page").show();
            }
        }
    }
    </script>

    und hier der Aufbau in JSF:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    
    <div id="searchbarLeft">
                        <ul id="leftBar" class="jcarousel-skin-tango">
                            <li> 
                                <h:graphicImage id="firstPage" value="#{resource['firstPage.Normal.png']}"
                                                 onmouseover="this.src='#{resource['firstPage.MouseOver.png']}'"
                                                 onmouseout="this.src='#{resource['firstPage.Normal.png']}'"
                                                 onclick="this.src='#{resource['firstPage.Pressed.png']}'; manageActivePages(this.id);"
                                                 >                                
                                </h:graphicImage>
                            </li>
                            <li>
                                <h:graphicImage id="secondPage"
                                                 value="#{resource['secondPage.Normal.png']}"
                                                 onmouseover="this.src='#{resource['secondPage.MouseOver.png']}'"
                                                 onmouseout="this.src='#{resource['secondPage.Normal.png']}'"
                                                 onclick="this.src='#{resource['secondPage.Pressed.png']}'; manageActivePages(this.id);"
                                                 >                                
                                </h:graphicImage>
                            </li>
                            <li>
                                <h:graphicImage id="thirdPage"
                                                 value="#{resource['thirdPage.Normal.png']}"
                                                 onmouseover="this.src='#{resource['thirdPage.MouseOver.png']}'"
                                                 onmouseout="this.src='#{resource['thirdPage.Normal.png']}'"
                                                 onclick="this.src='#{resource['thirdPage.Pressed.png']}'; manageActivePages(this.id); "
                                                 >                                
                                </h:graphicImage>
                            </li>
                            USW....
                        </ul>
                    </div>
     
    /*Weiter unten folgender code :*/
                        <div id="innerContent">                      
                            <div id="firstPage_page">
                                <ui:include src="myContent1.xhtml" />
                            </div>
                            <div id="secondPage_page" >
                                <ui:include src="myContent2.xhtml" />
                            </div>
                            <div id="thirdPage_page">
                                <ui:include src="myContent3.xhtml" />
                            </div>

    Das war die urprüngliche Version <-- t leider nicht, weil der Parser wie gesagt mit den '<' '>' Zeichen nicht zurecht kommt.
    Quotes wie &lt; oder &gt; en an dieser Stelle leider auch nicht.

    Weitere Versuche:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    <h:body>
        <script type="text/javascript" src="pathToMyExternalisedJSfile/Navigation.js"/>
        
        <script type="text/javascript">
                jQuery(document).ready(function() {
     
                    jQuery('#leftBar').jcarousel({
                        start:0,
                        visible: 8,
                        vertical: true
                        }
                    );
     
                   /**
                   * Hides all elements
                   */
                   hideAll();   /*ersetzt erste for-schleife s.o.*/
     
                });
     
                /*Zweite funktion mit for - schleife wird in dieser Variante direkt über die Buttons aufgerufen*/
     
    }
    </script>
    </body>

    Fehler des Browsers : Funktion hideAll() und Funktion manageActivePages(this.id) können nicht gefunden werden -.-

    Nächste Variante:

    Code :
    1
    
    <h:outputScript name="pathToMyExternalisedJSfile/Navigation.js" target="head" />

    Gleiches in Gelb:
    Fehler des Browsers : Funktion hideAll() und Funktion manageActivePages(this.id) können nicht gefunden werden -______-


    Weiß echt nit weiter grad und trete scheinbar auf der Stelle ...
    Hilfe wäre meine Rettung grad

    Thanks in advance
    Geändert von Bexx (16.07.10 um 16:52 Uhr)
     
    Christopher Columbus didn't need directions, neither do we!

    Alles hat eine Logik. Selbst wenn es keine Logik gibt.

    ***

    NetBeans 7.x, GlassFish v3
    JSF 2.0
    Java EE

  2. #2
    Avatar von kuhlmaehn
    kuhlmaehn kuhlmaehn ist offline Mitglied Platin
    Registriert seit
    May 2003
    Beiträge
    634
    Vielleicht kannst du's mit nem CDATA lösen?
    http://mediavrog.net/blog/2007/10/17...tml-einbinden/
    Bexx bedankt sich. 

  3. #3
    Avatar von Bexx
    Bexx Bexx ist offline Programmer
    Registriert seit
    Feb 2009
    Ort
    Saarbrooklyn
    Beiträge
    222
    Lese es mir mal grad durch ...

    Danke erstmal, aber als neugieriges Mäuschen möchte ich natürlich auch wissen,
    wo der Fehler liegt. Würd halt gern verstehen was ich falsch mache -,-
     
    Christopher Columbus didn't need directions, neither do we!

    Alles hat eine Logik. Selbst wenn es keine Logik gibt.

    ***

    NetBeans 7.x, GlassFish v3
    JSF 2.0
    Java EE

  4. #4
    Avatar von Bexx
    Bexx Bexx ist offline Programmer
    Registriert seit
    Feb 2009
    Ort
    Saarbrooklyn
    Beiträge
    222
    PERFEKT!!

    Es funktioniert EINWANDFREI


    Antwort auf mein Problem findet sich in kuhlmans link
     
    Christopher Columbus didn't need directions, neither do we!

    Alles hat eine Logik. Selbst wenn es keine Logik gibt.

    ***

    NetBeans 7.x, GlassFish v3
    JSF 2.0
    Java EE

Ähnliche Themen

  1. jQuery click function nur einmal ausführbar?
    Von OloX im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 04.08.10, 16:41
  2. [jQuery] Function eines Buttons wechseln
    Von VanHellsehn im Forum Javascript & Ajax
    Antworten: 5
    Letzter Beitrag: 22.03.10, 20:02
  3. [jQuery] $(window).ready(function ()...
    Von xamunrax im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 24.04.09, 12:08
  4. jQuery: bind is not a function
    Von DeluXe im Forum Javascript & Ajax
    Antworten: 5
    Letzter Beitrag: 05.04.09, 18:45
  5. Sichtbarkeit innerhlab einer jar-datei
    Von Orbit im Forum Java
    Antworten: 1
    Letzter Beitrag: 13.01.08, 17:26