2011-08-11 38 views
1

如何設置「a」標籤的訪問顏色。這裏是我的代碼有如何在JQuery中設置鏈接訪問顏色

theobj.find('a:visited').css('color', thejson.WidgetInfo.TextColor); 

上面的代碼無法正常工作。我只能使用內聯的CSS。有沒有辦法做到這一點?

+0

需要更多信息,thejson.WidgetInfo.TextColor的值是什麼? – Joe

+0

Oh..thejson.WidgetInfo.TextColor等於黑色。當我運行該程序時,文本是藍色的 – Luke101

+0

您確定鏈接已被訪問? – Joe

回答

0

是否有你想使用jQuery而不是純CSS的原因?訪問過的鏈接的行爲應該與未訪問的鏈接不同嗎?

根據您對上述問題的回答,解決方案會有所不同。

CSS:

a:hover { color: #000; }

jQuery的(用於多鏈路顏色屬性):

以上
var ele = $("#widget a"); // Replace the desired element/object here 
var eleColor = ele.css('color'); // Grab what the element's color is 
if(eleColor != '#000000' || eleColor != '#000'){ // If it doesn't match X or Y 
ele.css("color","000"); // Set to default color 
} 

^代所需的顏色。

或接近2:

$("#widget a").css("color","000"); // Set all links to #000 

或接近3:

$("#widget a").click(function(){ $(this).css("color","000"); }); 

工作例如:http://jsfiddle.net/9N5Xe/

+0

是的,程序的安裝方式..我只能使用內聯的CSS。將純css集成到程序中會花費太長時間。 – Luke101

+0

這是正確的..我想所有鏈接相同的顏色,無論它的訪問與否。這適用於MS瀏覽器,但不適用於Firefox。 – Luke101

1

我建議你有一個CSS類,並設置類代替,但由於你只能使用內聯樣式,你可以試試這個

theobj.find('a').attr("style", "color:#000000 !important"); 
0

你不能真正設置一個元素上的任何屬性只適用於某些pseudoselector喜歡參觀。 CSS文件是聲明式的,因爲您將CSS包含在文檔中,然後可以使用這組規則。 JavaScript不是聲明式的,而是執行的,這意味着你只能捕獲一些事件,然後迴應。換一種說法;您可以選擇所有已訪問的鏈接並設置每個鏈接的顏色,但不能爲訪問的鏈接設置顏色。

現在,爲了實現您想要的,您可以爲每個錨點上的點擊事件設置一個「實時」事件處理程序,然後相應地應用CSS。

出於好奇;你爲什麼不直接在樣式元素或css文檔中設置規則?

+0

感謝您的評論。對於此特定項目,無法使用普通樣式表,因爲它將用於小部件。因此,當小部件被放置在遠程網站上時,它將適用於整個網站 – Luke101

3

您可以構造一個樣式標籤,然後將其寫入頁面。

var visited_link_styling = "<style> a:visited{ color:'red'; } </style>"; 
$('head').append(visited_link_styling); 

這可能會有點沮喪,因爲JavaScript是不擅長多行字符串。