【问题标题】:jQuery toggle with SVG带有 SVG 的 jQuery 切换
【发布时间】:2015-06-26 20:38:44
【问题描述】:

我在 jQuery 中使用了很多显示/隐藏或切换方法。

现在我正在为 SVG 地图而苦苦挣扎。

到目前为止,我已经尝试过以下示例:

    $(".runs-toggle").click(function(){
      $("#Snow_mashine").toggle();
    });


    $('.runs-toggle').click(function(){
        $("#Snow_mashine").toggleClass('hidden');
    }); 

这两个例子都不行。

.runs-toggle 是一个切换按钮,所以第一次点击时,#Snow_mashine(地图中的对象)必须隐藏,再次点击后会显示#Snow_machine。

当我这样使用时:

$(".runs-toggle").click(function(){
  $("#Snow_mashine").hide();
});

它隐藏了元素,但如果我使用 .show() 它不会显示元素。

我读过关于 .attr() 函数不是使用 .addClass(),而是使用 SVG,但我不知道如何实现切换效果。

        $('.runs-toggle').click(function(){
           $("#Snow_mashine").attr("class","hidden");
        }); 

它向元素添加隐藏类,当该类具有 display:none 和 CSS 时,效果很好,但是如何在第二次点击后显示元素?

【问题讨论】:

    标签: jquery svg toggle


    【解决方案1】:

    试试下面的代码。

    $(".runs-toggle").click(function(){
        if($("#Snow_mashine").css("display")=="block")
        {
            $("#Snow_mashine").css("display", "none");
        }
        else
        {
            $("#Snow_mashine").css("display", "block");
        }
    });
    

    【讨论】:

    • 它已关闭,但第二次点击后切换工作。我的意思是当我第一次点击时它不会隐藏元素。第二次点击后它会隐藏元素,第三次点击它会显示元素。
    • 能否分享您在 JSFiddle 中的代码示例。
    • Ashish,很遗憾地图是定制的,我无权在 JSFiddle 上显示它。
    • 是的,现在可以了!我已将 CSS 设置为对象 display:block,现在切换从第一次单击开始工作!非常感谢!来自我的 +1!
    • 请你给我解释一下这行代码? ("display")=="block")
    【解决方案2】:

    我设法像这样解决了这个问题

    $('.the-thing').attr('class') === 'the-thing hidden' ? $('.the-thing').attr('class', 'the-thing') : $('.the-thing').attr('class', 'the-thing hidden');
    

    【讨论】:

      【解决方案3】:

      要切换课程,您可以使用toggleClass

      $('.runs-toggle').click(function(){
         $("#Snow_mashine").toggleClass("hidden");
      }); 
      

      【讨论】:

      • 我也试过了,它不适用于 SVG 对象。
      • 你能用 svg 做一个小提琴吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-14
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 2012-11-11
      • 1970-01-01
      相关资源
      最近更新 更多