javascript - js问题,进来看看吧,还有别的方法么。我的方法有点笨
黄舟
黄舟 2017-04-11 10:12:23
[JavaScript讨论组]

js 是这样

这个类名是让箭头旋转的
html这样
点击一次的样式
再点一次

因为给它已经加了“fa-flip-vertical”这个类名,所以是向上的,,,js写的太笨,,,求大神指导

对应的四个盒子

两个都出现了

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(3)
高洛峰
$(".invest-p1").click(function(){
    $(this).children("i").toggleClass("fa-flip-vertical")
});

功能完整点的:

var $content = $("p.invest-s");
$(".invest-nav").delegate(">", "click", function () {
    $(this).parent().find("i.fa-flip-vertical").removeClass("fa-flip-vertical");
    $(this).children("i").toggleClass("fa-flip-vertical");
    $content.hide().eq($(this).index()).show();
});
伊谢尔伦

css的话用:active,
jq的话用toggleClass

阿神

其实这种需求,可以借鉴 bootstrapdropdown 组件的思路。

点击 dropdown button 来控制 dropdown-menu 的显示和隐藏,他的做法是在父节点添加或删除 open, 而不是直接控制 dropdown-menu 的显示和隐藏。

同理,推荐你在 invest-p1 节点添加或删除 active 来控制状态,这样做的好处:

  1. 可以控制所有子节点在 active 状态的样式,而不仅限于某一个子节点

  2. 用js控制会更简单

  3. 写样式也会更加清晰、方便维护

一个简单的js例子:

$('.invert-nav').on('click', '.invest-p1', function(e) {
    var $t = $(this);
    
    $t.toggleClass('active').siblings('.active').removeClass('active');
})

以scss为例:

.invert-p1{
    .fa{
        color: #bbb;
    }
    &.active{
        .fa{
            color: #006741;
        }
        // 这里还可以有其他子节点的样式
    }
}

这只是一种解决问题的思路,具体项目可以有多方面的衡量。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号