2016-09-30 4 views
1

Я попытался переключиться, переключиться, но это не сработает. Цель: есть белый элемент. Мы нажимаем кнопку, и элемент становится, например, синим. Мы снова нажимаем кнопку, и элемент снова становится белым. Тест 3 Как изменить цвет элемента SVG, нажав кнопку?

+0

Мой пример здесь http://jsfiddle.net/P6t2B/ – rinatoptimus

ответ

1

Согласно примечания к релизу jQuerys, класс манипуляция SVGs не поддерживается до версии 3.0: https://blog.jquery.com/2015/07/13/jquery-3-0-and-jquery-compat-3-0-alpha-versions-released/

Таким образом, он не должен работать, если вы либо использовать JQuery 3.0 (или более поздней версии) ИЛИ вы манипулируете классы сами, используя .attr() метод:

somejQueryElement.attr('class', 'new-value')

Я сделал простой пример здесь:

http://jsfiddle.net/MattDiMu/q67h7bmf/

0

$(document).ready(function() { 
 
    
 
     var flag = true; // take a flag here 
 
    
 
     $(".S1").mouseover(function() { 
 
      if (flag) { // check flag before change 
 
       $(".S1").css('fill', '158844'); 
 
       $(".S1").css('stroke', '158844'); 
 
      } 
 
     }); 
 
    
 
     $(".S1").mouseout(function() { 
 
      if (flag) { // check flag before change 
 
       $(".S1").css('fill', '#000000'); 
 
       $(".S1").css('stroke', '#000000'); 
 
      } 
 
     }); 
 
    
 
     $(".S1").click(function() { 
 
      flag = false; // reset flag 
 
      $(".S1").css('fill', '158844'); 
 
      $(".S1").css('stroke', '158844'); 
 
     }); 
 
    
 
});
<svg> 
 
<line class = "S1" fill="none" stroke="#000000" stroke-width="3.8417" x1="73.208" y1="73.341" x2="99.923" y2="73.341"/> 
 
<polygon class = "S1" points="97.23,82.618 97.176,72.229 97.121,61.843 106.145,66.987 115.169,72.136 106.2,77.377 "/> 
 
</svg>

Смежные вопросы