Jquery按类扩展div

时间:2011-10-07 15:28:20

标签: jquery

我遇到以下代码中的if语句时遇到问题,如果div有一个类,我会尝试触发一个事件,该类在代码中添加和减去。这是正确的方法吗?因为它不起作用?

$(document).ready(function() {

    $('.content_accrd').css({
        "height": "0px"
    });
    $('.content_accrd:eq(0)').addClass("open").css({
        "height": "110px"
    });
    $('.paneltop:eq(0)').css({
        "background-position": "0px 0px"
    })
    $('.paneltop').click(function() {
        **if ($(this).siblings('.content_accrd').attr('class') != "open")** {
            $(this).addClass("open").css({
                "background-position": "0px 0px"
            }).siblings('.content_accrd').animate({
                "height": "110px"
            }, 200)
        } else {
            $(this).reomveclass("open").css({
                "background-position": "0px -21px"
            }).siblings('.content_accrd').animate({
                "height": "0px"
            }, 200);
        }
    })
})

4 个答案:

答案 0 :(得分:2)

您想使用hasClass功能:

$('.paneltop').click(function() {
    if ($(this).siblings('.content_accrd').hasClass('open')) {
        $(this).removeclass("open").css({
            "background-position": "0px -21px"
        }).siblings('.content_accrd').animate({
            "height": "0px"
        }, 200);
    } else {
        $(this).addClass("open").css({
            "background-position": "0px 0px"
        }).siblings('.content_accrd').animate({
            "height": "110px"
        }, 200)            
    }
})

交换顺序以避免使用! :d

removeClass拼写错误。

答案 1 :(得分:1)

更改为:

if ($(this).siblings('.content_accrd').hasClass('open'))

答案 2 :(得分:0)

你应该这样做:

if ($(this).siblings('.content_accrd').hasClass('open')) {
    // ...
}

然而,这留下了一个问题:这个测试应该做什么?测试任何兄弟姐妹的那个班级? 一个特定的兄弟姐妹?你应该明确说明。

答案 3 :(得分:0)

您可以尝试.hasClass()方法:

if ($(this).siblings('.content_accrd').hasClass('open')) {

http://api.jquery.com/hasClass/