2012-01-21 10 views
5

Ho scritto JQuery che è stato progettato in modo tale che quando un utente naviga in "pagina/2 /" in Wordpress, viene visualizzata un'immagine nella barra laterale. Il suo CSS è impostato su display:none; inizialmente, quindi ho JQuery per cambiarlo su display:block; se questa stringa URL è presente. Il codice che ho scritto lo ha fatto all'indietro ... quindi lo fa su ogni pagina MA '/ page/2 /'.Aggiunta di classi CSS basate su stringa URL tramite JQuery

$(document).ready(function() { 

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

Ho sempre pensato che se non ci fosse stato ambientato in un'istruzione If, ​​si tratta come vero, e qualsiasi altra cosa come false. Dovrei inserire uno = 1 o qualcosa qui? Cosa mi manca?

Molte grazie SO

risposta

4

Il blocco if verranno inseriti se il valore della condizione è convertibile in true. In Javascript qualsiasi numero diverso da zero è true e il valore restituito di indexOf quando la stringa non viene trovata è -1. Quindi ogni volta che non è lì restituisce -1 che è visto come vero e viene inserito il blocco if.

Modificare il condizionale per essere esplicito a ciò che stai cercando

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

Grazie per la spiegazione. È perfetto. – RCNeil

+0

Quindi, prima che trovasse la stringa '/ page/2 /', restituiva uno 0 (falso) invece di un 1? Era solo il momento in cui l'affermazione "true" non era stata portata a termine. Non lo porterebbe per tutti i test allora? – RCNeil

+0

@RCNeil, porterebbe a termine per ogni caso tranne dove la stringa inizia con '"/page/2/"' – JaredPar

0

Questo codice jQuery funziona solo per home page

$(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"); 
     } 
    }); 
Problemi correlati