1

以下のコードは機能していますが、URL が「domain/dev/」ではなく「domain/dev」で末尾にスラッシュがある場合にのみ機能します。私はJS構文にあまり詳しくないので、修正方法がわかりません。条件文を追加してさまざまなバリエーションを試しましたが、スラッシュがコードを壊しているようです。

$(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

2 に答える 2

0

これはおそらくハックですが、うまくいくはずです

var loc = window.location.href;
    if(loc.substring(loc.length-1,loc.length) == '/'){
       loc = loc.substring(0,loc.length-1);}
于 2012-09-19T00:10:14.510 に答える
0

このコードを使用して、必要なものを達成できました(Cookieが存在するかどうかを確認し、存在する場合はいくつかのクラスを追加し、存在しない場合は1つのクラスを追加します)

$(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');
    }       
});
于 2012-09-20T15:43:00.403 に答える