2014-09-30 39 views
0

我使用jQuery的很多显示/隐藏或切换方法。jQuery与SVG切换

现在我正在努力与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()不显示的元素。

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

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

它加入一个隐藏类的元素,当类有显示:没有用CSS,它的伟大工程,但我要如何证明后第二次点击的元素?

回答

3

尝试。

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

它接近,但在第二次点击后切换工作。我的意思是当我先点击它不隐藏元素。第二次点击后,它会隐藏该元素,并在第三次点击后显示该元素。 – user2519032 2014-09-30 11:49:14

+0

您可以在JSFiddle中分享您的代码示例吗? – Ashish 2014-09-30 11:50:37

+0

Ashish,不幸的是地图是自定义的,我没有权限在JSFiddle上显示它。 – user2519032 2014-09-30 11:52:22

-2

要切换的一类,你可以使用下面的代码toggleClass

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

我已经试过了也一样,它不与SVG对象的工作。 – user2519032 2014-09-30 11:46:41

+0

你可以用svg做小提琴吗? – 2014-09-30 11:50:29

0

我设法解决这个问题,这样

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