2012-01-21 13 views
5

Tengo escrito algo de JQuery que está diseñado para que cuando un usuario navegue a 'página/2 /' en Wordpress, aparezca una imagen en la barra lateral. Su CSS está configurado en display:none; inicialmente, luego tengo JQuery cámbielo a display:block; si esa cadena de URL está presente. El código que escribí lo tiene al revés ... así que lo hace a cada página PERO '/ página/2 /'.Agregando clase de CSS basada en cadena de URL a través de JQuery

$(document).ready(function() { 

var url = window.location.pathname; 
if(url.indexOf('/page/2/')){ 
    $('.sidebarimage').css("display","block"); 
}}); 

Siempre pensé que si no hubiera estado situado en una instrucción If, que lo trata como verdad, y todo lo demás como falso. ¿Debo poner un = 1 o algo aquí? ¿Qué me estoy perdiendo?

Muchas gracias SO

Respuesta

4

serán introducidos El bloque if si el valor de la condición es convertible a true. En Javascript, cualquier número distinto de cero es true y el valor de retorno de indexOf cuando la cadena no se encuentra es -1. Por lo tanto, cada vez que no está allí devuelve -1 que se ve como verdadero y se ingresa el bloque if.

Cambiar el condicional para ser explícita a lo que estás buscando

if (url.indexOf('/page/2/') !== -1) { 
    $('.sidebarimage').css("display","block"); 
} 
+0

Gracias por la explicación. Eso es perfecto. – RCNeil

+0

Entonces, ¿cuándo encontró la cadena '/ page/2 /', devolvió un 0 (falso) en lugar de un 1? Ese fue solo el momento en que la declaración "verdadera" no se llevó a cabo. ¿No se llevaría a cabo para todas las pruebas, entonces? – RCNeil

+0

@RCNeil, se llevaría a cabo para todos los casos excepto donde la cadena comenzó con '"/página/2/"' – JaredPar

0

Este Código Jquery funcionará sólo para la página de inicio

$(document).ready(function() { 

    var x = location.href; 
    var y = location.hostname; 
    var z = 'http://' + y + '/'; 

     if(x == z){ 
     $('.class').css("display","block"); 
    } 
     else{ 
     $('.class').css("display","none"); 
     } 
    }); 
Cuestiones relacionadas