2013-05-26 66 views
0

我有以下功能:jQuery函數改變CSS

,並想進一步的功能添加到點擊功能。我是新來的jQuery,並試圖學習,但仍然不明白閱讀它。我認爲我可以創建並附加一個if-條款,但仍然與此相矛盾。 所以我是這樣認爲:

$this.css($('.year').is(':visible') ? 'color', 'red' : 'color', 'green'); 
if the click function takes place and the .contents is visible change the css setting of .year to red and if not use color green 

,那就太好,如果有人能幫助我。

非常感謝。

+2

'$ this.css( '顏色',$( '的一年。 ')是(':可見') '紅色':? '綠色');'(移動''顏色','部分之前?:) –

+0

你好,謝謝你的回答。這不起作用。也許我忘了說點什麼。我會更新我的問題。 – bonny

+0

請注意,如果任何具有'.year'類的元素可見,則.is(':visible')'將返回true,如果您有多個具有該類的元素,則可能是問題。 – adeneo

回答

1

是不是你在找什麼?

http://jsfiddle.net/m6WrV/4/

$(document).ready(function() { 
    $('.content').hide(); 
    $('.slide').click(function() { 
     var $this = $(this); 
     $(this).siblings('.content').slideToggle(200, function() { 
      $this.text($(this).is(':visible') ? 'click to close' : 'click to open'); 
      $(this).closest('.aai').find('.head').css('color', $(this).is(':visible') ? 'red' : 'green'); 
     }); 

    }); 
}); 
+0

正好。這就是我一直在尋找的。非常感謝你。祝你今天愉快。 – bonny

+0

酷,但老實說,羅布W給你的答案47分鐘前:) –

+0

我認爲''(this).parent()'可以用來代替'$(this).closest('。aai')' 。 –

1

也許你尋找類似

$this.css('color', $('.year').is(':visible') ? 'red' : 'green')); 

您可能還必須檢查如何is(':visible')作品所設置的從$('.year')返回的元素。可能是當一些可見而另一些不可見時工作不同。

編輯:as @ adeneo指出,is(':visible')返回true如果任何中的元素是可見的。

+0

你好,謝謝你的吸引力。這不起作用。我已經更新了我的問題。看看if-clause的評論。謝謝。 – bonny

+0

你如何使用建議的代碼?會發生什麼,什麼不會發生?也許你可以讓JS Fiddle更好地展現它。 – Roemer

+0

http://jsfiddle.net/m6WrV/在這裏你可以看到它。現在,如果標題在點擊功能發生時變爲紅色,我想更改顏色。所以如果內容是可見的改變標題的顏色。 – bonny

1

也許,這可能爲你工作,但代碼不簡明 爲您的片段:

if ($(".year").is(":visible")) { 
    $this.css({ "color" : "red" }); 
} else { 
    $this.css({ "color" : "green" }); 
} 
+0

將''visible'換成'is(「:visible」)'。 –

+0

謝謝我完全錯過了 – Tifa

+0

jsfiddle.net/m6WrV在這裏你可以看到它。當點擊功能發生時,我想將標題的顏色更改爲紅色。所以如果內容是可見的改變標題的顏色。 – bonny