我在父元素“.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>
答案 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');
}
});