2011-07-27 31 views
2

jquery是否可以添加新的樣式聲明?jquery添加css聲明?

例如,道:

{ "body": { "font-size": "12px" }, "table": { "xyz": "123" } } 

等等等等

到我不知道,而不必選擇那些元素做這樣一個功能:

$('body').css({"font-size": "12px"}); 
$('table').css({"xyz": "123"}); 

而且問題的第二部分,是否可以使用jquery爲hover僞類設置css,還是需要使用.hover()函數?如果可能的話,我只是希望應用css而不必處理鼠標輸入/輸出功能。

$('#element').find('a.thumbnail:hover').css({'background-color': '#efefef' }); 

不起作用。

感謝, 韋斯利

+1

請參見: http://stackoverflow.com/questions/1348741/can-jquery-manipulate-the-global-css-definition-of-the-document –

回答

-1

你必須只選擇DOM元素來做到這一點。另外,爲了設置懸停樣式,您必須使用css或添加/刪除類名稱來設置樣式。

+0

這是什麼答案? – Phil

+0

@菲爾 - 他在問是否有可能以他想要的方式去做。我回答說,他不可能按照自己的方式行事。我想我不應該爲此投票。我在這裏沒有回答任何問題。 – ShankarSangoli

+0

@Phile - 你有什麼迴應嗎? – ShankarSangoli

4

答到第1部分:

你必須定義一個函數來做到這一點 - 嘗試這樣:

function styleit(json) 
{ 
    //loop through the json 
    $.each(item, function(i, style){ 
     //apply styles 
     $(i).css(styles); 
    } 
} 

回答的第2部分:

我會把css聲明放在類中:

.active a.thumbnail:hover { background-color: #efefef; } 

然後使用JavaScript來切換類的父元素的上下文

$('#element').addClass('active'); 
0

在第一部分,你是正確添加樣式的bodytable標籤。

對於第二部分,該解決方案,同時採用.hover()似乎是一個簡單的解決方案:

$('#element').hover(function() { 
    $(this).css({'background-color': '#efefef' }); 
}); 
+1

hover()有2個函數,背景不會恢復。 – Sparkup

+0

http://jsfiddle.net/jfhpg/ – Sparkup

+0

謝謝你,我一直使用回調,並沒有真正知道它不會恢復。 – Phil

0

試試這個:

$('a.thumbnail').hover(
    function(){ 
     $(this).css({'background-color':'#efefef'}); 
    }, 
    function(){ 
     $(this).css({'background-color':'normal-color'}); 
    } 
); 

例子:http://jsfiddle.net/jfhpg/1/

希望它能幫助。