2009-07-03 13 views
1

Ich möchte den folgenden jquery-Code auf jeder Seite meiner Website ausführen.Jquery: Wie registriert man ein Ereignis auf allen Seiten?

$(document).ready(function(){   
    $("#more").click(function(){ 
     $("#morediv").slideToggle("slow"); 
     return false; 
    }); 
}); 

In allen meinen Seiten habe ich die more und morediv Elemente definiert, für jede Seite, die ich verschiedene js-Datei und in jeder Datei diesen Code hinzugefügt wird keine gute Lösung (nehme ich an) sein.

Ich habe eine global.js erstellt, um diesen Code zu enthalten, aber in anderen Seiten habe ich auch die $(document).ready(function(){}-Funktion definiert und möglicherweise ist das der Grund, warum seine Konflikte und nicht ordnungsgemäß ausgeführt werden.

Antwort

3

Sie können mehrere $ (Dokument) .ready (function() {}) Elemente auf Ihrer Seite haben, so dass es das Problem ist. Ich schlage vor, Firefox/Firebug zu verwenden und alle Konsolefehler zu untersuchen, die Sie finden, um das Problem zu entdecken. Vielleicht wird Ihre Datei global.js vor jQuery selbst geladen? Ansonsten müssen Sie sich mit dem Debugger von Firebug einarbeiten.

1

$ (Dokument) .ready() -Ereignishandler in global.js und die Seite, in der es enthalten ist, stellt kein Problem, ich benutze es und es funktioniert wirklich gut.

2

Sind Sie tatsächlich einige serverseitige Programmierung oder Sie sprechen über einfache HTML-Seiten. Ich würde empfehlen, dass Sie Vorlagen haben (dies ist spezifisch für Ihre Entwicklungsumgebung und Tools der Wahl) und enthalten Sie das JS in diesen Vorlagen. Dann verwenden die tatsächlichen Seiten alle die Vorlage und haben die JS verfügbar. Die Frage, die Sie stellen, hat in Wirklichkeit nichts mit Javascript oder JQuery zu tun, sondern mit der Art, wie Sie Ihre Site organisieren ... außer ich verpasse etwas.

1

Nur eine Vermutung, aber verweisen Sie den Speicherort der Datei global.js korrekt?

Um sicher zu sein, so etwas wie die folgenden in Ihrem globalen Skript schreiben:

$(document).ready(function(){     

    alert("document ready"); 

    $("#more").click(function(){ 
     $("#morediv").slideToggle("slow"); 
     return false; 
    }); 
}); 

Wenn Sie das Skript pathed nicht nach dem jquery richtig oder nicht gesetzt nicht die Benachrichtigung erhalten, sind (oder Das jquery-Include ist nicht richtig gepatcht).

Verwandte Themen