2014-09-30 5 views
0

Я использую много методов show/hide или toggle с jQuery.jQuery toggle with 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

Try ниже код.

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

Это близко, но переключатель работает после второго щелчка. Я имею в виду, когда я нажимаю сначала, он не скрывает элемент. После второго щелчка он скрывает элемент, а при третьем нажатии он отображает элемент назад. – user2519032

+0

Не могли бы вы поделиться своим примером кода в JSFiddle. – Ashish

+0

Ashish, к сожалению, карта выполнена на заказ, и у меня нет разрешения показывать ее на JSFiddle. – user2519032

-2

Для переключения класса можно использовать toggleClass

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

Я попытался это тоже, он не работает с объектом SVG. – user2519032

+0

Можете ли вы сделать скрипку с svg? –

0

мне удалось решить эту проблему, как этот

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