用jquery切换图像

时间:2012-10-29 20:08:34

标签: jquery

我在父元素“.learn-more”中有一个图像,“精灵arrow-d”。如果单击了learn-more,我希望arrow-d替换为arrow-u,反之亦然。写这篇文章的最佳方式是什么。

$('.learn-more').click(function() {

    if ($('.arrow-d').is('arrow-d'))
    {
    $('#hero').animate({
        'height':'400'
    }, 700);
        $('.arrow-d').removeClass('arrow-d').addClass('arrow-u');
    }
    else 
    {
        $('.arrow-u').removeClass('arrow-u').addClass('arrow-d');
    }


});

HTML:

        <div class="learn-more">
            <span>LEARN MORE ABOUT</span>
            <i class="sprites arrow-d"></i>
        </div>

3 个答案:

答案 0 :(得分:2)

$('.learn-more').on('click', function() {
    $('#hero').animate({'height': $('.arrow-d').length?400:80}, 700);
    $('.arrow-d').toggleClass('arrow-d arrow-u');
});​

答案 1 :(得分:1)

您可以改用.toggleClass()方法。这样您就不需要检查类是否存在。像这样:

$('.learn-more').click(function() {
    $('#hero').animate({
        'height':'400'
    }, 700);
    $("i.sprites").toggleClass("arrow-d arrow-u");
});

答案 2 :(得分:0)

  $('.learn-more').click(function() {

    var sprites = $(this).find('sprites');
        if (sprites.hasClass('arrow-d'))
        {
$('#hero').animate({
        'height':'400px'
    }, 700);
            sprites.removeClass('arrow-d').addClass('arrow-u');
        }
        else 
        {
$('#hero').animate({
        'height':'80px'
    }, 700);
            sprites.removeClass('arrow-u').addClass('arrow-d');
        }

    });