2012-09-18 64 views
1

我有下面的代碼工作,除了它只適用於URL爲「domain/dev」而不是「domain/dev /」的尾部斜線。我不是很熟悉JS語法,所以不知道如何糾正。我嘗試了不同的變體,添加了條件語句,但斜線似乎破壞了代碼。jQuery有條件的基於URL

$(function() { 
    var loc = window.location.href; 
    if(/dev/.test(loc)) { 
    var visited = 'visited'; 
    if($.cookies.get(visited) === null){ 
     $('#career-home').addClass('visited') 
     $.cookies.set('visited', 'visited') 
     console.log("addClass") 
    }else{ 
     $('#career-home').removeClass('visited') 
     console.log("removeClass") 
    } 
    } 
    console.log(window.location.pathname); 
}); 
+4

「似乎正在破壞代碼」---定義「破」。但是請不要僅僅用「不起作用」的方式來解釋它 – zerkms

+0

你有沒有嘗試過:'if(「domain/dev /」+ loc =='something'){' –

+0

By「breaking」I意思是當我使用example.com/dev/進行測試時,條件返回true。但是當我測試example.com/dev時,條件返回false。不完全確定「返回」是否是在此使用的正確詞彙,但希望這有助於澄清。謝謝。 – pedalGeoff

回答

0

這可能是一個黑客,但它應該工作

var loc = window.location.href; 
    if(loc.substring(loc.length-1,loc.length) == '/'){ 
     loc = loc.substring(0,loc.length-1);} 
+0

試過這個,但不能得到它的工作。可能只是我。 – pedalGeoff

0

我能夠實現我需要什麼(檢查是否存在cookie,如果是添加幾個類,如果不加一類)使用此代碼

$(document).ready(function() { 
    var pathArray = window.location.pathname.split('/'); 
    var cookieName = pathArray[2]; 
    var loc = window.location.pathname; 
    if($.cookies.get(cookieName) === null) { 
     $.cookies.set(cookieName, 'visited'); 
     $('#' + cookieName).addClass('current'); 
     setTimeout(function(){ 
      $('#' + cookieName).addClass('visited') 
      console.log("addClass 'visited' to #" + cookieName) 
     },5000); 
     console.log("Set cookie = " + cookieName) 
     console.log("addClass 'current' to #" + cookieName) 
    } else { 
     console.log(cookieName + " cookie value = " + $.cookies.get(cookieName))   
    } 
    if(/dev/.test(loc)) { 
     $('#' + cookieName).addClass('current'); 
    }  
});