2011-04-28 18 views
5

Mientras se probaba mi página web en Firebug me sale este error al hacer clic en un botón de menú:excepción no detectada: Error de sintaxis, expresión no reconocida: [href = example.html]

excepción no detectada: Error de sintaxis, expresión no reconocida: [ href = schedule.html]

creo que va mal aquí porque la clase actual no se aplicará pero el resto funciona bien (estos no son el código completo)

html:.

<nav> 
    <ul> 
    <li><a class="current" href="index.html">HOME</a></li> 
    <li><a href="schedule.html">SCHEDULE</a></li> 
    </ul> 
</nav> 

JS:

$("nav a").removeClass("current"); 
$("nav a[href="+newHash+"]").addClass("current"); 
+1

Hay algo mal con su código. A menos que muestre el código, las únicas respuestas que podrá obtener se basarán en que las personas adivinen cómo se vería su código. – Guffa

+1

Aunque podría adivinar ... no voy a hacerlo. Si su código arroja errores, entonces no proporcione solo el error. Es difícil identificar problemas en un código secreto que no podemos ver. – Quentin

+1

Firebug ya se muestra cuál es el problema. –

Respuesta

7

esto tiene la apariencia culpable:

// add single quotes on your selector value 
$("nav a[href='"+newHash+"']").addClass("current"); 
+0

gracias, corregido ahora! – Jeroen

3

Desde jQuery 1.5, citando a los valores de atributo es obligatorio. Se puede citar con comillas simples o dobles:

$("nav a[href='"+newHash+"']").addClass("current"); 

o

$('nav a[href="'+newHash+'"]').addClass("current"); 

Citando era opcional en jQuery 1.4 o inferior.

+0

El curso que estoy tomando (Lynda.com -> jQuery Essential Training) usa una versión de jQuery que todavía no requiere estas citas. Entonces, en el video que ves, todo funciona bien sin ellos, pero si usas una versión jQuery más nueva, ¡los necesitas! – RubenGeert

Cuestiones relacionadas