2012-01-21 13 views
5

Mam napisany JQuery, który jest przeznaczony tak, gdy użytkownik przechodzi do "strona/2 /" w Wordpress, obraz pojawia się na pasku bocznym. To jest CSS ustawiony na display:none; początkowo, to mam JQuery zmienić go na display:block;, jeśli ten ciąg adresu URL jest obecny. Kod, który napisałem, ma go od tyłu ... więc robi to na każdej stronie ALE '/ page/2 /'.Dodawanie klasy CSS na podstawie ciągu adresu URL za pośrednictwem JQuery

$(document).ready(function() { 

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

Zawsze myślałem, że jeśli nie ma warunku określonego w instrukcji If, to traktuje to jako prawdziwe, a wszystko inne jako fałszywe. Czy powinienem wstawić tutaj = 1? czego mi brakuje?

Dziękujemy SO

Odpowiedz

4

Blok if zostaną wprowadzone, jeżeli wartość warunku jest zamienny do true. W języku Javascript dowolny niezerowy numer to true, a wartość zwracana indexOf, gdy łańcuch nie zostanie znaleziony, wynosi -1. Stąd za każdym razem, gdy go tam nie ma, zwraca wartość -1, która jest postrzegana jako prawdziwa i wprowadzany jest blok if.

Zmień warunkowego być jawne, co szukasz

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

Dzięki za wyjaśnienie. To idealne. – RCNeil

+0

Tak więc przed, kiedy DID znalazł ciąg '/ page/2 /', zwrócił 0 (fałsz) zamiast 1? To był jedyny moment, w którym "prawdziwe" stwierdzenie się nie odbyło. Czy nie przeprowadziłby wtedy wszystkich testów? – RCNeil

+0

@RCNeil, Byłoby to możliwe w każdym przypadku, z wyjątkiem tego, że ciąg zaczynał się od '"/page/2/"' – JaredPar

0

ten kod jQuery działa tylko na stronie głównej

$(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"); 
     } 
    }); 
Powiązane problemy