Question

Je suis en train de charger un plug-in en utilisant requirejs mais parfois obtenir une erreur, « .fn $ n'est pas défini » mais si je recharger la page l'erreur disparaît presque comme maintenant est mis en cache jquery le problème est supprimé. Je chargement mes bibliothèques comme ceci:

require(["jquery-1.4", "/script/jquery.autoSuggest.packed.js"], function($) {
   $(function() {
       //code
    });
});

Pouvez-vous voir s'il y a quelque chose de mal avec cette mise en œuvre qui provoquerait cette erreur? Js est en cours Obliger les ajouter à la page afin:

<script type="text/javascript" src="http://website.co.uk/frameworks/requirejs/0.2.4/sharedmodules/require.js">
</script> 
<script type="text/javascript">  requireMap = {
     "jquery-1.4":"http://website.co.uk/sharedmodules/jquery-1.4"
}; 

    require({ baseUrl: 'http://website.co.uk/', paths: requireMap });      
</script>

Cela ne peut pas être modifié car il fait partie du cadre que je me sers.

Toutes les suggestions?

Merci!

Était-ce utile?

La solution

plug-in de commande est supprimé. utiliser le chargement de la manière suivante shim

requirejs.config({
   paths: {
        'jquery': 'https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min',
        'bootstrap': '../bootstrap/js/bootstrap.min',
        'select2': 'vendor/select2',
        'jshashtable': 'vendor/jshashtable-2.1',
        'jquery.numberformatter': 'vendor/jquery.numberformatter-1.2.3.min',
        'jq-datepicker': 'vendor/bootstrap-datepicker',
        'jq-datepicker.da': 'vendor/bootstrap-datepicker.da'
    }, 

    // Use shim for plugins that does not support AMD
    shim: {
        'bootstrap': ['jquery'],
        'select2': ['jquery'],
        'jq-datepicker': ['jquery'],
        'jshashtable': ['jquery'],
        'jquery.numberformatter': ['jquery', 'jshashtable']
    },

});

Référence: http://requirejs.org/docs/api.html#config-shim

Autres conseils

Vous voulez utiliser le plug-in pour . Par défaut RequireJS charges des scripts aussi vite que possible, et ils peuvent charger hors d'usage. Cependant, le plug-in de commande maintiendra l'ordre des charges de script.

Si vous utilisez l'optimiseur optimiseur vos scripts, assurez-vous d'inclure à la fois jQuery et le plug-in dans le script optimisé.

Vous voudrez peut-être à la caisse https://github.com/jquery-boilerplate/patterns

Il a un bon code de plugin jQuery boilerplate qui fonctionnera avec RequireJS.

Je pense que vous pourriez avoir à mettre à jour votre jQuery 1.7 avant que ces modèles fonctionneront pour vous.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top