【问题标题】:Changing SVG-Icon when Active激活时更改 SVG 图标
【发布时间】:2014-12-10 15:19:41
【问题描述】:

我对这个 jQuery-Thing 很陌生,所以很抱歉提前提出可能的转储问题。我已经搜索过了,但找不到任何关于我的具体问题的帮助。

所以。我尝试在我的菜单图标(汉堡图标,流行的东西,你知道)激活关闭图标时碰碰运气。我发现了这个:http://css-tricks.com/swapping-svg-icons/

 $(".expand-link")
            .on("click", function() {
                $(this).find("use").attr("xlink:href", "#closeicon");
            })
            .on("mouseleave", function() {
                $(this).find("use").attr("xlink:href", "#menuicon");
            });

现在,我想要的是在第一次单击菜单图标时,它会变为关闭图标。在第二次单击图标或其他位置时,它会将关闭图标更改回菜单图标。

使用“点击”事件两次不起作用,我尝试了不同的鼠标事件,但它们都没有帮助。

【问题讨论】:

    标签: jquery svg icons


    【解决方案1】:

    请发布一个小提琴。

    .find("use") => 你确定有 吗?如果要按类选择,请使用“.find('.use')”

    顺便说一句 - 你可以检查 attr by

    .on('click', function() {
        if($(this).find("use").attr("xlink:href") === '#closeicon') {
           // do this
        } else {
            // do that
        }
     });
    

    【讨论】:

    • 给我几秒钟,我会设置一个小提琴
    • uf,所以,我不知道我在小提琴中做错了什么,但它并没有真正起作用。无论如何我做到了,最终你可以看到我想要做什么:jsfiddle.net/2hrwawz9 编辑:是的,使用标签就在那里。我得到了 css-tricks.com 的交换代码表格。这是他们的密码笔:codepen.io/chriscoyier/pen/Dqpib
    【解决方案2】:

    创建一个标志变量并在每次点击时更改其状态,以便您知道要设置哪个 URL。例如

    flag = true
    $(".expand-link")
                .on("click", function() {
                    if (flag)
                    $(this).find("use").attr("xlink:href", "#closeicon");
                    else
                    $(this).find("use").attr("xlink:href", "#menuicon");
                    flag = !flag;
               });
    

    例如this

    【讨论】:

    • 嗯,这几乎可以工作,唯一的问题是我必须再次单击图标才能将其更改回来。如果我单击页面上的其他任何位置,图标保持不变。可能我只需要在整个页面上设置一个 div 吗?
    • 我刚刚意识到问题与画布外导航有关,所以我的问题似乎比那个要大一些。我可能会请一些我认识的人直接帮助我。还是谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    相关资源
    最近更新 更多