Ich verwende ein Webanwendungsframework (Symfony 1.3.6), das dem MVC-Muster folgt.
Die Ansichtsebene besteht aus einem Vorlagendekorator. Die Vorlagendatei kann auch andere Vorlagen enthalten - das ist der Grund für meine Frage.
Unter der Annahme, dass es eine Seite (nennen wir es die ‚Homepage‘), die aus mehreren Vorlagen besteht - (der Code Refactoring geführt wurde, so dass die ‚Unter Vorlagen‘ können auf anderen Seiten verwendet werden
.Als Ergebnis des Refactorings müssen die kleinen Vorlagen, die von der Hauptvorlage verwendet werden (in unserem Beispiel "Homepage"), ihren jQuery-Code enthalten.
Nehmen wir an, die Homepage-Vorlage verwendet 2 'sub Vorlagen:
- Vorlage A
- Vorlage B
davon ausgehen, dass der folgende Code-Schnipsel Vorlage A besteht:
<div id="field1">This is field 1</div>
<script type="text/javascript">
$(document).ready(function(){
$('#field1').click(function(){
alert('Field 1 clicked!');
});
</div>
</script>
davon ausgehen, dass Vorlage B der folgenden Ausschnitt aus:
<div id="field2">This is field 2</div>
<script type="text/javascript">
$(document).ready(function(){
$('#field2').click(function(){
alert('Field 2 clicked!');
});
</div>
</script>
Nun ist die Vorlage 'Homepage' sieht so aus:
<html>
<head>
<title>Multiple jQuery snippet test</title>
<script src="path_to_jquery"></script>
</head>
<body>
<div>include_template('template A')</div>
<div>include_template('template B')</div>
</body>
</html>
Ich habe dies versucht - und zu meiner Überraschung funktionierte es, dass es nur ein $ (Dokument) .ready() in der zusammengeführten, letzten Seite ('Homepage) gab.
Ich bin mir nicht sicher, ob entweder mein Browser (Firefox) oder das Web-Framework (Symfony) hinter den Kulissen etwas "aufgeräumt" hat.
Meine Frage ist also, was ist der beste Weg, um fortzufahren, wenn Sie jQuery-Funktionalität in 'kleine wiederverwendbare Vorlagen' umgestalten wollen, die wiederverwendet werden können, um die gleiche Funktionalität auf verschiedenen Seiten bereitzustellen?
BTW, ich hoffe, niemand schlägt vor, ein jQuery-Plugin zu schreiben, wie das ist SO nicht, worüber ich spreche.
Meinen Sie Ihnen einen Anruf fusioniert Funktion bekamen oder dass nur ein Feld sein Click-Ereignis hat? Wenn Sie sicher sein wollen, dass Firefox gereinigt wird, versuchen Sie wget, Ihre Seite wird nicht geändert. – greg0ire