javascript tooltip js - JQuery - $ no está definido





15 Answers

Puede ser que tenga su etiqueta de script llamada antes de llamar al script jquery.

<script type="text/javascript" src="js/script.js"></script>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>

Este resultado como $ no está definido

Coloca el jquery.js antes de tu etiqueta de script y funcionará;) así:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>

<script type="text/javascript" src="js/script.js"></script>
html

Tengo un simple evento click jquery

<script type="text/javascript">
    $(function() {
        $('#post').click(function() {
            alert("test"); 
        });
    });
</script>

y una referencia jquery definida en el site.master

<script src="<%=ResolveUrl("~/Scripts/jquery-1.3.2.js")%>" type="text/javascript"></script>

He comprobado que la secuencia de comandos se está resolviendo correctamente, puedo ver el marcado y ver la secuencia de comandos directamente en firebug, por lo que debo encontrarme. Sin embargo, todavía estoy recibiendo:

$ no está definido

Y ninguno de los trabajos de jQuery. También he probado las diversas variaciones de este como $ (document) .ready y jQuery etc.

Es una aplicación MVC 2 en .net 3.5, estoy seguro de que estoy siendo muy denso, en todas partes en google dice que para verificar que el archivo esté correctamente referenciado, lo cual he revisado y comprobado nuevamente, ¡por favor avise! : /




Si la llamada del complemento jQuery está al lado de </body> , y su script está cargado antes de eso, debe hacer que su código se ejecute después del evento window.onload , como este:

window.onload = function() {
  //YOUR JQUERY CODE
}

`

por lo tanto, su código se ejecutará solo después de la carga de la ventana, cuando se hayan cargado todos los activos. En ese punto, se definirá el jQuery ( $ ).

Si usas eso:

$(document).ready(function () {
  //YOUR JQUERY CODE
});

`

El $ aún no está definido en este momento, porque se llama antes de que se cargue jQuery, y su script fallará en esa primera línea en la consola.




Utilice una sección de scripts en la vista y el diseño maestro.

Coloque todos sus scripts definidos en su vista dentro de una sección de Scripts de la vista. De esta manera puede hacer que el diseño maestro cargue esto después de que se hayan cargado todos los demás scripts. Esta es la configuración predeterminada al iniciar un nuevo proyecto web MVC5. No estoy seguro acerca de las versiones anteriores.

Vistas / Foo / MyView.cshtml:

// The rest of your view code above here.

@section Scripts 
{ 
    // Either render the bundle defined with same name in BundleConfig.cs...
    @Scripts.Render("~/bundles/myCustomBundle")

    // ...or hard code the HTML.
    <script src="URL-TO-CUSTOM-JS-FILE"></script>

    <script type="text/javascript">
      $(document).ready(function () {

        // Do your custom javascript for this view here. Will be run after 
        // loading all the other scripts.            
      });
    </script>
}

Vistas / Compartido / _Layout.cshtml

<html>
<body>
    <!-- ... Rest of your layout file here ... -->

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)
</body>
</html>

Observe cómo la sección de scripts se representa en último lugar en el archivo de diseño maestro.







Significa que su biblioteca jQuery no se ha cargado todavía.

Puede mover su código después de tirar de la biblioteca jQuery.

o puedes usar algo como esto

window.onload = function(){
  // Your code here
};  



Suena como si jQuery no se carga correctamente. ¿Qué fuente / versión estás usando?

Alternativamente, podría ser una colisión de espacio de nombres, así que intente usar jQuery explícitamente en lugar de usar $ . Si eso funciona, es posible que noConflict utilizar noConflict para asegurarse de que el otro código que usa $ no se rompa.




Utilizo Url.Content y nunca tengo un problema.

<script src="<%= Url.Content ("~/Scripts/jquery-1.4.1.min.js") %>" type="text/javascript"></script>



Ese error significa que jQuery aún no se ha cargado en la página. El uso de $(document).ready(...) o cualquier variante del mismo no servirá de nada, ya que $ es la función jQuery.

El uso de window.onload debería funcionar aquí. Tenga en cuenta que solo se puede asignar una función a window.onload . Para evitar perder la lógica de carga original, puede decorar la función original así:

originalOnload = window.onload;
window.onload = function() {
  if (originalOnload) {
    originalOnload();
  }
  // YOUR JQUERY
};

Esto ejecutará la función que se asignó originalmente a window.onload , y luego ejecutará // YOUR JQUERY .

Consulte https://en.wikipedia.org/wiki/Decorator_pattern para obtener más detalles sobre el patrón decorador.




Simplemente coloque la URL de jquery en la parte superior de su código de jquery

Me gusta esto--

<script src="<%=ResolveUrl("~/Scripts/jquery-1.3.2.js")%>" type="text/javascript"></script>

<script type="text/javascript">
    $(function() {
        $('#post').click(function() {
            alert("test"); 
        });
    });
</script>



Tenemos el mismo problema ... pero accidentalmente revisé las propiedades de la carpeta y configuré algo ...

Debe verificar las propiedades de cada carpeta a la que está accediendo.

  1. clic derecho en la carpeta
  2. pestaña 'permisos'
  3. configurar el acceso a la carpeta: PROPIETARIO: crear y eliminar archivos GRUPO: acceder a archivos OTROS: acceder a archivos

Espero que esta sea la solución ......




En mi caso estaba apuntando a Google alojado en JQuery. Se incluyó correctamente, pero estaba en una página HTTPS y lo llamé a través de HTTP. Una vez que solucioné el problema (o permití contenido inseguro), se activó de inmediato.




parece que si ubica sus archivos jquery.js en la misma carpeta o en algunas subcarpetas donde se encuentra su archivo html, se solucionó el problema de Firebug. por ejemplo, si su html está en C: / folder1 /, entonces sus archivos js deberían estar en algún lugar en C: / folder1 / (o C: / folder1 / folder2, etc.) y también deben abordarse en consecuencia en el documento html. espero que esto ayude.




  1. Compruebe que la ruta exacta de su archivo jquery está incluida.

    <script src="assets/plugins/jquery/jquery.min.js"></script>

Si agrega esto en la parte inferior de su página, llame a la función JS debajo de esta declaración.

  1. Compruebe utilizando este código de prueba,

    <script type="text/javascript">
    /***
     * Created by dadenew
     * Submit email subscription using ajax
     * Send email address
     * Send controller
     * Recive response
     */
    $(document).ready(function() { //you can replace $ with Jquery
    
      alert( 'jquery working~!' );
    });
    

¡Paz!




Hay una forma de hacerlo cargar automáticamente javascript antes de que se ejecute el resto del código.

Vaya a Views \ Shared_Layout.html y agregue lo siguiente

<head>
  <*@ Omitted code*@>
  <script src="~/Scripts/jquery-1.10.2.min.js" type="text/javascript"></script>
</head>



Acaba de poner la biblioteca jQuery en la sección principal del html :)

<head>
<script src="assets/js/jquery-1.10.2.min.js"></script>
<script src="assets/js/bootstrap.min.js"></script>
</head>





Related