首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不同元素之间切换类?

如何在不同元素之间切换类?
EN

Stack Overflow用户
提问于 2017-06-14 19:08:51
回答 2查看 36关注 0票数 0

在html中,我在.fig-8锚内有两个图像。

.img-active = display: block

.img-inactive = display: none

HTML:

代码语言:javascript
复制
<div class="tabs1">
    <a class="fig-8" data-tab="tab1">
       <img src="/path.png" class="img-active">
       <img src="/selected.png" class="img-inactive">
    </a>

    <a class="fig-8" data-tab="tab2">
       <img src="/path1.png" class="img-active">
       <img src="/selected.png" class="img-inactive">
    </a>

    <a class="fig-8" data-tab="tab3">
       <img src="/path2.png" class="img-active">
       <img src="/selected.png" class="img-inactive">
    </a>
</div>

我所需要的是,当您单击锚时,.img-active应该是display: none.img-inactive = display: block

正如我在js文件中所做的那样:

代码语言:javascript
复制
$('.tabs1 a').on('click', function() {
    $(this).find('.img-active').hide();
    $(this).find('.img-inactive').show();
});

它正在做我想做的事情,但是如果您单击第二个或第三个锚点,我单击的图像不会达到它的原始形状(默认图像)。

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-14 19:18:07

这不能用CSS来实现吗?您可以使用:focus伪类。

代码语言:javascript
复制
.img-inactive,.img-active {float:left;}
.img-inactive {display:none;}
.img-active {display:block;}

a:focus .img-inactive {display:block;}
a:focus .img-active {display:none;}
代码语言:javascript
复制
<div class="tabs1">
    <a class="fig-8" data-tab="tab1" href="#">
       <img src="//placehold.it/150/5C5/FFF?&text=active" class="img-active">
       <img src="//placehold.it/150/C55/FFF?&text=inactive" class="img-inactive">
    </a>

    <a class="fig-8" data-tab="tab2" href="#">
       <img src="//placehold.it/150/5C5/FFF?&text=active" class="img-active">
       <img src="//placehold.it/150/C55/FFF?&text=inactive" class="img-inactive">
    </a>

    <a class="fig-8" data-tab="tab3" href="#">
       <img src="//placehold.it/150/5C5/FFF?&text=active" class="img-active">
       <img src="//placehold.it/150/C55/FFF?&text=inactive" class="img-inactive">
    </a>
</div>

否则,使用jQuery也很容易做到

代码语言:javascript
复制
$('.tabs1 a').on('click', function() {
    $('.tabs1 a .img-inactive').hide();
    $('.tabs1 a .img-active').show();
    $(this).find('.img-inactive').show();
    $(this).find('.img-active').hide();
});
代码语言:javascript
复制
.img-inactive,.img-active {float:left;}
.img-inactive {display:none;}
.img-active {display:block;}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="tabs1">
    <a class="fig-8" data-tab="tab1" href="#">
       <img src="//placehold.it/150/5C5/FFF?&text=active" class="img-active">
       <img src="//placehold.it/150/C55/FFF?&text=inactive" class="img-inactive">
    </a>

    <a class="fig-8" data-tab="tab2" href="#">
       <img src="//placehold.it/150/5C5/FFF?&text=active" class="img-active">
       <img src="//placehold.it/150/C55/FFF?&text=inactive" class="img-inactive">
    </a>

    <a class="fig-8" data-tab="tab3" href="#">
       <img src="//placehold.it/150/5C5/FFF?&text=active" class="img-active">
       <img src="//placehold.it/150/C55/FFF?&text=inactive" class="img-inactive">
    </a>
</div>

票数 2
EN

Stack Overflow用户

发布于 2017-06-14 19:21:08

你能试试这个吗?

代码语言:javascript
复制
$('.tabs1 a').on('click', function() {
    $('.img-active').not(this).show();
    $('.img-inactive').not(this).hide();
    $(this).find('.img-active').hide();
    $(this).find('.img-inactive').show();
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44552831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档