2011-04-01 44 views
6

Tengo un problema donde $("#register") returns null, pero jQuery("#register") devuelve el objeto correctamente.

Esto puede valer más que mil palabras:

Chrome inspector expressing the problem

Como se puede ver en la expresión del reloj todo funciona como se esperaba (jQuery === $ returns true) Pero en la consola no lo hace. Y en código tampoco, porque la cadena $("#register").validate no funciona.

Tal vez tiene que hacer algo con $script.js cosa?

+0

¿Está utilizando múltiples marcos? –

+0

tal vez usted tiene alguna función '$()' –

+0

El problema ha sido resuelto - Creo que es cosa inspector web de Chrome que anula $ –

Respuesta

1

Lamento regresar en 5 minutos y decir que el código funciona. Uh.

Es sólo que $ es algo que el inspector web anula.

El $ script.js no causa conflictos.

> jQuery.noConflict() 
function (a,b){return new d.fn.init(a,b,g)} 
> $ 
function() 
    { 
     return document.getElementById.apply(document, arguments) 
    } 

Es el problema de cromo inspector :)

+0

puede explicar cómo se puede solucionar esto? –

+0

@PrAtikLochawala Resuelve qué? Solo se pone de una manera cuando usas herramientas Chrome Dev. Tiene su propio significado para $ variable: [$ (selector) docs] (https://developers.google.com/web/tools/chrome-devtools/console/command-line-reference#queryselector). Si llama a jQuery.noConflict(), puede asignarlo a otra variable y usar esa variable en lugar de $ para que no entre en conflicto con las herramientas de desarrollo de chrome. –

8

Tal vez en otro marco de JavaScript que está utilizando la función secuestra $(). Puede echar un vistazo al jQuery.noConflict() para obtener consejos sobre el uso de jQuery con otros marcos.

1

incorrectamente escrita plugin de jQuery puede ser la causa de este problema

1

Esto sucede porque ambos archivos JavaScript declaran funcionar $

1

Con el fin de evitar posibles conflictos, antes de usar jQuery, es necesario llamar a jQuery.noConflict();. Después, use el objeto "jQuery" en el nivel de script base siempre que necesite usarlo, aunque internamente para cualquier método de este tipo puede usar $ en lugar de jQuery.

En otras palabras, usted debe escribir:

jQuery.noConflict(); 
jQuery.ready(function() { 
    // do stuff 
    $('#btn').button(); 
}); 

en cuenta que en el interior listo, puedo usar $ de nuevo sin tener que preocuparse por otros conflictos.

Cuestiones relacionadas