Pregunta

Estoy tratando de cargar un complemento usando las necesidades, pero ocasionalmente recibe un error, "$ .fn está indefinido", pero si recargo la página, el error desaparece casi como ahora jQuery se almacena en caché, el problema se elimina. Estoy cargando mis bibliotecas como esta:

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

¿Puede ver si hay algo malo con esta implementación que cause este error? Requerir JS se agrega a la página como así:

<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>

Esto no se puede cambiar ya que es parte del marco que estoy usando.

¿Alguna sugerencia?

¡Gracias!

¿Fue útil?

Solución

Se elimina el complemento de pedido. Use la carga de la cuña de la siguiente manera

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']
    },

});

referencia : http://requirejs.org/docs/api.html#config-shim

Otros consejos

Querrás usar el complemento de pedido. De forma predeterminada, requeríajs carga scripts lo más rápido posible, y pueden cargarse fuera de orden. Sin embargo, el complemento de pedido mantendrá el orden de las cargas de script.

Si usa el optimizador para optimizar sus scripts, asegúrese de incluir tanto jQuery como el complemento en el script optimizado.

Es posible que desee pagar https://github.com/jquery-boilerplate/patterns

Tiene un buen código de complemento jQuery Boilerplate que funcionará con Requirjs.

Creo que es posible que tenga que actualizar su jQuery a 1.7 antes de que estos patrones funcionen para usted.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top