2010-10-01 9 views
9

Soy un novato bonifide jQuery y tengo un código jquery que he reconstruido, pero sigo recibiendo un error cuando se carga la página. El problema es que no estoy seguro si tengo todas las llaves y paréntesis cerrado correctamente y realmente apreciaría otro par de ojos en esto:¿Existe alguna forma de validar el código jQuery?

$(document).ready(function() { 
    $('#slideshow').cycle({ 
     fx: 'scrollLeft', 
     timeout: 8000 
    }); 
}); 
    $('#freeQuote form') 
     .validate({ 
     submitHandler: function(form) { 
      $(form).ajaxSubmit({ 
       success: function() { 
       var Image = $('<img />').attr({src:'_images/free-quote-confirm.png', width:231, height:267, alt:"Success"}); 
        $('#freeQuote form').hide(); 
        $('#freeQuote').append(Image) 
       } 
      }); 
     } 
     }); 

    $('#news-signup form') 
    .validate({ 
    submitHandler: function(form) { 
     $(form).ajaxSubmit({ 
      success: function() { 
      var Image = $('<img />').attr({src:'_images/register-thanks.png', width:332, height:35, alt:"Success"}); 
       $('#news-signup form').hide(); 
       $('#news-signup').append(Image) 
      } 
     }); 
    } 
    }); 

tengo esta carga de su propio archivo .js.

Gracias.

Respuesta

8

Sí, cargue la página en Chrome y presione Ctrl-Shift-J para abrir la consola de JavaScript. Esto resaltará al instante cualquier error de sintaxis.

Como alternativa, obtenga Firebug para Firefox.

En cuanto a su código, creo que debería comenzar más pequeño si no sabe lo que está haciendo. Obtenga la función cycle() funcionando primero, luego pruebe con una de las validaciones, luego la otra. Haga que funcione un bit a la vez, y cada vez que agregue algo nuevo, pruébelo para ver si funciona, o no, y si genera errores.

Una vez que llegue a esa etapa, siga las instrucciones de Robert's y ejecútelo a través de JSLint. Eso te mostrará dónde estás haciendo las cosas mal, como faltar puntos y comas en los extremos de las declaraciones.

+0

o conseguir [FirebugLite] (http://getfirebug.com/firebuglite), que funciona en IE6 +, Firefox, Opera , Safari y Chrome – Oded

+0

Buen consejo. Lo hice funcionar. Gracias por el consejo de proceso. – fmz

6

Sí, http://www.jslint.com/

Su código devuelto los siguientes errores:

Error:

Problem at line 14 character 50: Missing semicolon.

$('#freeQuote').append(Image)

Problem at line 27 character 48: Missing semicolon.

$('#news-signup').append(Image)

Implied global: $ 1,2,7,10,12,13,14,20,23,25,26,27, document 1

JSLint odia todo lo que hago: P

+2

Creo que JSLint arrojará demasiados errores para un novato. Eso no quiere decir que no sea una herramienta extremadamente útil, pero si no sabes lo que estás buscando, hay un montón de 'ruido' relativo. – Skilldrick

+0

@Skilldrick Estoy de acuerdo en que puede ser un poco abrumador, pero no hay mejor manera de aprender de sus errores. –

+1

Una cosa es aprender de sus errores, no saber el camino correcto es otro problema. ¡JSLint me muestra mis problemas pero no me enseña cómo corregirlos! – fmz

1

Una buena manera de ayudar a validar cosas simples como anidamiento de parens o rizado llaves es mediante el uso de un editor como Notepad ++ o Eclipse.

1

Utilice cualquier potente editor para JS.
Aptana, PhpStorm son los que he probado y vio que, al menos PhpStorm, muestran muy buenas críticas cuando algo está mal en el código JS (incluyendo jQuery)

1

http://www.jslint.com/

que se está perdiendo un punto y coma en dos lugares:. $ ('# freeQuote') append (imagen) y $ ('# noticias-registro') append (imagen)

-1

Las siguientes líneas deben encerrar todo lo demás:.

$(document).ready(function() { 
    // ... 
    // everything else 
    // ... 
}); 

Además, el corto (y recomendado) de forma que sea:

jQuery(function($) { 
    // ... 
    // everything else 
    // ... 
}); 
0

Un montón de buenas ideas ya publicado ... sólo una cosa que añadir. Utilice QUnit o una herramienta similar de prueba de unidades de Javascript para ejecutar pruebas unitarias que realmente ejerzan su código. No hay mejor manera de saber que es "correcto" que definir qué significa "correcto", y luego ejecutarlo y verificar que sea "correcto".

QUnit es lo que utilizan los autores de JQuery para garantizar que JQuery funcione correctamente. Here's a getting started link.

0

incluso para jQuery y sin utilizar plugins del navegador específica prefiero JSHint:

enter image description here

Cuestiones relacionadas