Javascript 用于更改CSS的jQuery函数

Javascript 用于更改CSS的jQuery函数,javascript,jquery,html,function,Javascript,Jquery,Html,Function,我有以下功能: $(document).ready(function () { $('.contents').hide(); $('.slide').click(function () { var $this = $(this); $(this).siblings('.contents').slideToggle(200, function () { $this.text($(this).is(':visible') ? '

我有以下功能:

$(document).ready(function () {
    $('.contents').hide();
    $('.slide').click(function () {
        var $this = $(this);
        $(this).siblings('.contents').slideToggle(200, function () {
            $this.text($(this).is(':visible') ? 'close' : 'open');
        });
    });
});
并希望在单击功能中添加进一步的功能。我是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
如果有人能帮我,那就太好了


非常感谢。

您可能正在寻找类似

$this.css( 'color', $('.year').is(':visible') ? 'red' : 'green') );
您可能还需要检查
$('.year')
中返回的元素集上的工作方式(':visible')
。可能是,当一些可见而另一些不可见时,其工作原理不同


编辑:正如@adeneo所指出的,
is(“:visible”)
如果集合中的任何元素可见,则返回true。

您可能正在寻找类似

$this.css( 'color', $('.year').is(':visible') ? 'red' : 'green') );
您可能还需要检查
$('.year')
中返回的元素集上的工作方式(':visible')
。可能是,当一些可见而另一些不可见时,其工作原理不同


编辑:正如@adeneo指出的,
is(“:visible”)
如果集合中的任何元素可见,则返回true。

这可能对您有用,但代码不够简洁 作为您的代码片段:

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

也许这对您有用,但代码没有那么简洁 作为您的代码片段:

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

这就是你要找的吗


这就是你要找的吗



$this.css('color',$('.year')。是(':visible')?'red':'green')(将
'color',
部分移到?:)您好,谢谢您的回答。这是行不通的。也许我忘了说些什么。我将更新我的问题。请注意,如果具有
.year
类的任何元素可见,则
.is(':visible')
将返回true,如果该类中有多个元素,则可能会出现问题。请注意,具有
可见性:hidden
不透明度:0
的元素视为可见。可见元素的宽度或高度必须大于零。
$this.css('color',$('year')。是(':Visible')?'red':'green')(将
'color',
部分移到?:)您好,谢谢您的回答。这是行不通的。也许我忘了说些什么。我将更新我的问题。请注意,如果具有
.year
类的任何元素可见,则
.is(':visible')
将返回true,如果该类中有多个元素,则可能会出现问题。请注意,具有
可见性:hidden
不透明度:0
的元素视为可见。可见元素的宽度或高度必须大于零。您好,谢谢您的支持。这是行不通的。我已经更新了我的问题。查看if子句注释。谢谢。您如何使用建议的代码?发生了什么,没有发生什么?也许你可以做一把小提琴来更好地展示它。在这里你可以看到它。现在,我想改变颜色,如果标题为红色时,点击功能发生。因此,如果内容可见,请更改标题的颜色。您好,谢谢您的缺席。这是行不通的。我已经更新了我的问题。查看if子句注释。谢谢。您如何使用建议的代码?发生了什么,没有发生什么?也许你可以做一把小提琴来更好地展示它。在这里你可以看到它。现在,我想改变颜色,如果标题为红色时,点击功能发生。因此,如果内容是可见的,请更改标题的颜色。将
:visible
用引号括起来,即
是(“:visible”)
。谢谢,我完全错过了jsidle.net/m6WrV,您可以在这里看到它。我想在单击功能发生时将标题的颜色更改为红色。因此,如果内容是可见的,请更改标题的颜色。将
:visible
用引号括起来,即
是(“:visible”)
。谢谢,我完全错过了jsidle.net/m6WrV,您可以在这里看到它。我想在单击功能发生时将标题的颜色更改为红色。因此,如果内容是可见的,请更改标题的颜色。这就是我要找的。非常感谢你。祝你今天愉快。很酷,但老实说,Rob W在47分钟前给了你答案:)我想,
$(this.parent()
)可以代替
$(this)。最接近('.aai')
@JustinJohn当然可以在这里,但至少最接近允许你修改html而不必重新编码函数,例如,如果你想在其他包装器中包装.slide元素。父项('.aai')。first()是另一个选项。完全正确。这就是我要找的。非常感谢你。祝你今天愉快。很酷,但老实说,Rob W在47分钟前给了你答案:)我想,
$(this.parent()
)可以代替
$(this)。最接近('.aai')
@JustinJohn当然可以在这里,但至少最接近允许你修改html而不必重新编码函数,例如,如果你想在其他包装器中包装.slide元素。父项('.aai')。first()是另一个选项。