Empfehlungen: Erweiterte Suche

Javascript lässt sich nicht inkludieren

JavaScript und AJAX

Javascript lässt sich nicht inkludieren

Beitragvon getit » Sa 3. Jan 2009, 15:16

Hallo,

ich habe das Layout 'default.ctp' umgeschrieben, da ich eine anderes Layout mit linker Navigation haben will.
Die linke Navigation soll einklappbar sein, deshalb brauche ich jquery (Javascript Framework) und Javascript.

Code: Alles auswählen

<head>
    <?php echo $html->charset(); ?>
    <title>...>/title>
    <?php echo $html->css('mycss'); ?>                                                    <!-- 1 -->
    <script type="text/javascript" src="/jquery/jquery-1.2.6.js"></script>    <!-- 2 -->
    <script type="text/javascript" src="/myjs.js"></script>                         <!-- 3 -->
    <script type="text/javascript">                                                <!-- 4 -->                
        $(document).ready(function() {
           $('#trenner').html('<span style="cursor:pointer;" onclick="toggle();"><<</span>');
        });
    </script>
</head>
<body>
  <div id="module"></div>
  <div id="trenner"></div>
    <div id="container">
        <div id="content">
            <?php $session->flash(); ?>
            <?php echo $content_for_layout; ?>
        </div>
    </div>
</body>
</html>
 


Das funktioniert soweit so gut.

Mein css (Kommentar: 1) wird eingebungen und interpretiert.

Mein erstes Javascript (Kommentar: 2) wird eingebunden und interpretiert (wenn dem nicht so wäre, würde ich einen Javascript Fehler bekommen das das '$' im Inlinecode (Kommentar: 4) unbekannt ist).

Das zweite Javascript (Kommentar: 3) wird nicht eingebunden bzw. nicht interpretiert. Ich bekomme keine Javascript Fehler, aber wenn ich mit der Maus den Text '<<' überfahre ändert sich der Cursor in eine Hand (richtig!) und wenn ich klicke erhalte ich die Fehlermeldung 'toogle is not defined'.

:?: Warum wird der Code nicht eingebunden? :?:
Der Code der eingebundenen Datei
Code: Alles auswählen

function toggle() {
    alert('toggle');
}
 

Alle Javascripts liegen im Ordner /app/webroot/js/ .
getit
 
Beiträge: 105
Registriert: Mo 22. Dez 2008, 13:06
CakePHP-Version: 1.2.1.8004
OS: Vista

Re: Javascript lässt sich nicht inkludieren

Beitragvon Mathias » Sa 3. Jan 2009, 16:10

Musst du nicht das Objekt (id, class, Element oder $this) angeben, auf das das toggle angewendet werden soll?
cheers
Benutzeravatar
Mathias
 
Beiträge: 225
Registriert: Mi 4. Jun 2008, 22:30
Wohnort: Berlin
CakePHP-Version: 1.3.x
OS: OS X 10.6.x

Re: Javascript lässt sich nicht inkludieren

Beitragvon getit » Sa 3. Jan 2009, 16:29

Musst du nicht das Objekt (id, class, Element oder $this) angeben, auf das das toggle angewendet werden soll?


Hä? Sag mir halt wie das Deiner Meinung nach aussehen muss. Danke.

Da erzählst Du mir was neues.
Habe das schon so gemacht - halt nicht im Zusammenhang mit cake.
getit
 
Beiträge: 105
Registriert: Mo 22. Dez 2008, 13:06
CakePHP-Version: 1.2.1.8004
OS: Vista

Re: Javascript lässt sich nicht inkludieren

Beitragvon Mathias » So 4. Jan 2009, 04:47

Ich bezweifle, dass das an cake liegt.
wenn du auf das span klickst, wird die funktion toggle() aufgerufen. Aber auf was wird toggle() denn angewendet?
Mir fällt gerade nur auf, dass du gar nicht die jquery-Methoden zum togglen benutzt, sondern deine eigenen, oder?
cheers
Benutzeravatar
Mathias
 
Beiträge: 225
Registriert: Mi 4. Jun 2008, 22:30
Wohnort: Berlin
CakePHP-Version: 1.3.x
OS: OS X 10.6.x

Re: Javascript lässt sich nicht inkludieren

Beitragvon getit » So 4. Jan 2009, 11:46

Hallo,

ja ich benutze meine eigene Methode.

Mag sein das das Beispiel ziemlich Sinnlos war, aber ich hatte vor den gesammten Inline-Code dann in die externe js-Datei auszulagern.
Deshalb wollte ich zuerst prüfen, ob ich auf diese Zugriff habe.

Naja, das war mit 1.2 RC4. Hier auf meinem Laptop habe ich die Version 1.2 laufen.
Hier kann ich den Pfad im Quellcode lesen :)

Beispielsweise erzeugt die Zeile
Code: Alles auswählen
echo $html->css('cake.generic');

aus der Datei default.ctp folgenden Seitenquelltext
Code: Alles auswählen
<link rel="stylesheet" type="text/css" href="/caketest/css/cake.generic.css" />


=> Somit lautet der Pfad zu allen Dateien im webroot
Code: Alles auswählen
/caketest/<TYP>/<NAME>


Also in meinem Fall:
Code: Alles auswählen
<script type="text/javascript" src="/caketest/js/jquery/jquery-1.2.6.js"></script>

=>Datei befindet sich in: /caketest/js/jquery/jquery-1.2.6.js

Code: Alles auswählen
<script type="text/javascript" src="/caketest/js/myjs.js"></script>

=>Datei befindet sich in: /caketest/js/myjs.js
getit
 
Beiträge: 105
Registriert: Mo 22. Dez 2008, 13:06
CakePHP-Version: 1.2.1.8004
OS: Vista


Zurück zu JavaScript und AJAX

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste