Plug -in di caricamento richiesto
Domanda
Sto cercando di caricare un plug -in usando Requisitijs ma occasionalmente ricevere un errore, "$ .fn non è definito" ma se ricarico la pagina l'errore scompare quasi come ora jQuery viene memorizzato nella cache Il problema viene rimosso. Sto caricando le mie biblioteche in questo modo:
require(["jquery-1.4", "/script/jquery.autoSuggest.packed.js"], function($) {
$(function() {
//code
});
});
Riesci a vedere se c'è qualcosa di sbagliato in questa implementazione che causerebbe questo errore? Richiedere che JS venga aggiunto alla pagina così:
<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>
Questo non può essere cambiato in quanto fa parte del framework che sto usando.
Eventuali suggerimenti?
Grazie!
Soluzione
Il plugin dell'ordine viene rimosso. Usa il caricamento dello spessore come segue
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']
},
});
riferimento : http://requirejs.org/docs/api.html#config-him
Altri suggerimenti
Vorrai usare il Plug -in d'ordine. Per impostazione predefinita, i requisiti caricano gli script il più velocemente possibile e possono caricare fuori servizio. Tuttavia, il plug -in Ordine manterrà l'ordine dei carichi di script.
Se usi l'ottimizzatore per ottimizzatore, assicurati di includere sia jQuery che il plug -in nello script ottimizzato.
Potresti voler fare il checkout https://github.com/jquery-boilerplate/patterns
Ha un buon codice plug -in jQuery di buon caldaia che funzionerà con Requisitijs.
Penso che potresti dover aggiornare la tua jQuery a 1.7 prima che questi schemi funzionino per te.