只有当另一个div应用了特定样式时,如何才能将类添加到特定div?

时间:2011-02-10 21:42:08

标签: jquery

我有这个设置:

<a id="slide-toggle" href="#"></a>

<div class="slide-container">
content here
</div>

当我点击#slide-toggle时,这是一个jQuery幻灯片,div.slide-container向下滑动。

div.slide-container最初设置为display:none,样式更改为display:当我点击#slide-toggle时,通过内联css进行阻止。

基本上,当div.slide-container处于其向下位置时(即设置为display:block),我想在'a'标记中添加一个类。

我如何设置这样的东西?

-edit -

$(document).ready(function() {
    $('a#slide-up').click(function() {
        $('.slide-container').slideUp('fast'); return false;});
        $('a#slide-toggle').click(function() {
        $('.slide-container').slideToggle('fast'); return false;
        });
});

$("a#slide-toggle").click(function() {
    if ($("div.slide-container").is("visible") {
        $("div.slide-container").slideUp();
        $(this).removeClass("active");
    } else {
        $("div.slide-container").slideDown();
        $(this).addClass("active");
    }
});

-edit2 -

这是我目前的代码:

$(document).ready(function() {
    $('a#slide-up').click(function() {
        $('.slide-container').slideUp(); return false;});
    $('a#slide-toggle').click(function() {
        if ($('.slide-container').is(':visible')) {
            $('.slide-container').slideUp();
            $(this).removeClass('active');
        } 
        else {
            $('.slide-container').slideDown();
            $(this).addClass('active');
        }
    });
});

它工作正常,除非.slide-container处于向下位置时,其中有一个链接(#slide-up),这是另一种沿着切换按钮关闭容器的方法。但是,当我使用该按钮关闭容器时,切换按钮仍处于活动状态。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

像这样:

$("a#slide-toggle").click(function() {
    if ($("div.slide-container").is("visible") {
      $("div.slide-container").slideUp();
      $(this).removeClass("class");
    } else {
        $("div.slide-container").slideDown();
        $(this).addClass("class");
    }
});

编辑:http://jsfiddle.net/Z6EK8/

    a:link              { color:red; text-decoration:underline; }
    a:visited           { color:red; text-decoration:underline; }
    a:hover             { color:green; text-decoration:underline; }
    a:active            { color:red; text-decoration:underline; }