2014-02-20 146 views
0

我想開發一個網站。我的網站有兩個導航鏈接。當用戶點擊導航鏈接時,頁面將被加載而不刷新。我已經完成了這部分。但問題是,活動鏈接的顏色不變。這是我的網站https://dl.dropboxusercontent.com/u/168659703/project3/index.html和我已經使用了頁面加載如何更改活動鏈接顏色而不刷新頁面?

$(function() { 

var newHash  = "", 
    $mainContent = $("#main-content"), 
    $pageWrap = $("#page-wra"), 
    baseHeight = 0, 
    $el; 

$pageWrap.height($pageWrap.height()); 
baseHeight = $pageWrap.height() - $mainContent.height(); 

$(".nav").delegate("a", "click", function() { 
    window.location.hash = $(this).attr("href"); 
    return false; 
}); 

$(window).bind('hashchange', function(){ 

    newHash = window.location.hash.substring(1); 


    if (newHash) { 
     $mainContent 
      .find("#guts") 
      .fadeOut(200, function() { 
       $mainContent.hide().load(newHash + " #guts", function() { 
        $mainContent.fadeIn(200, function() { 
         $pageWrap.animate({ 
          height: baseHeight + $mainContent.height() + "px" 
         }); 
        }); 

        $(".nav a").removeClass("active"); 
        $(".nav a[href="+newHash+"]").addClass("active"); 
       }); 
      }); 
    }; 

}); 

$(window).trigger('hashchange'); 

}); 

下面的代碼,請告訴我,我該如何解決這個問題?

+0

您可以設置一類具有所需的顏色,並添加cl屁股你點擊了錨點或修改鏈接的顏色與jquery – Huangism

+0

_href_不會開始一個哈希'#',但你刪除'newHash'嗎?所以你需要把它添加回你的選擇器中,並添加這個類。 –

回答

0

如果我讀你正確,您需要重新設置錨:

$("#anchor1").hide(); 
$("#anchor1").attr('href', some_val); 
$("#anchor1").show(); 

或者

var href = $('#anchor1').attr("href") 
$('#anchor1').removeAttr('href').prop('href', href); 

等。

點正在強制瀏覽器重繪元素。

Read this.

0

更改顏色直接

$(".nav").delegate("a", "click", function() { 
    window.location.hash = $(this).attr("href"); 
    $(this).css('color', '#000'); // black for example 
    return false; 
}); 

或通過添加類

$(".nav").delegate("a", "click", function() { 
    window.location.hash = $(this).attr("href"); 
    $(this).addClass('visited'); 
    return false; 
}); 

CSS

.visited { 
    color: #000; 
} 
相關問題