2011-06-01 74 views
2

我有這樣的CSS規則addClass:JQuery的類時綁定到一個ID

#panelSeparator .active { 
    background: #fff url(../img/vgrabber.gif) no-repeat center; 
    opacity: 0.7; 
} 

我願做這樣的事在JS:

$('#panelSeparator').addClass('active'); 

我應該如何改變addClass的參數爲了使其工作?

感謝,

+3

我沒有看到這裏的問題。該代碼應該工作得很好。 – 2011-06-01 14:57:06

+0

只有當CSS選擇器被鏈接時,jQuery才能正常工作,'#panelSeparator.active {}'意味着選擇一個具有** ID和類的元素,這就是jQuery正在做的事情,添加類到相同的元素 - 根據[布賴恩費舍爾的答案](http://stackoverflow.com/questions/6203218/jquery-addclass-when-the-class-is-bound-to-an-id/6203286#6203286) – clairesuzy 2011-06-01 15:04:18

回答

8

嘗試之間#panelSeparator .active取出空間,因此它是#panelSeparator.active

+5

+1,詳細說明是因爲'#panelSeparator .active'引用了一個元素,該元素的類型爲'active',它位於DOM樹中id爲'panelSeparator'的元素之後。刪除空格使其查找具有ID和Class的元素。 – Robert 2011-06-01 15:01:09

0

你的CSS定義這勢必會與ID爲「panelSeperator」元素的所有子類。你應該使用jQuery.children()函數(http://api.jquery.com/children/);

$('#panelSeparator').children().addClass('active'); 
0

如果您想保留相同的CSS,那麼您需要在Javascript中執行類似$('#panelSeparator div').addClass('active');的操作。基本上,你必須在#panelSeparator元素中選擇一個元素。

或者你可以保持相同的Javascript和只需更改CSS來#panelSeparator.active

0

你嘗試,

$('#panelSeparator').addClass('panelSeparator active');