2015-08-03 5 views
0

Я пытаюсь переключить cssclass с помощью jQuery на элементе SVG каждый раз при нажатии элемента div.классList.toggle не работает

Из того, что я прочитал, есть вопросы, делают это с SVG элементов и таким образом было решение:

$("#div1").click(function() { 
    $("#svg1").classList.toggle("clicked"); 
});` 

Однако, это не работает. Поэтому я предположил, что это связано с использованием элемента SVG в этой функции. Но при замене сказал SVG элемент с сНом элементом, как это:

$("#div1").click(function() { 
    $("#div2").classList.toggle("clicked"); 
}); 

класс еще не будет переключаться, несмотря на так как нет SVG элемента в функции.

+0

Любая ошибка в консоли? Поддерживает ли ваш браузер метод 'toggle()' 'classList' (https://developer.mozilla.org/en-US/docs/Web/API/Element/classList#Browser_compatibility)? –

+0

Чтение этого вопроса и его ответов может быть полезным: http://stackoverflow.com/questions/8638621/jquery-svg-why-cant-i-addclass –

+0

Да, это так, я использую Chrome, Frédéric. Я получил свое решение из комментария, опубликованного Томасом по этому конкретному вопросу, @Robert. Я просто сбила с толку, что люди утверждали, что он работает, когда это не для меня? – Bryce

ответ

2

Пожалуйста, попробуйте с простым javascript, я не думаю, что у jQuery есть этот метод.

$("#div1").click(function() { 
    document.getElementById('div2').classList.toggle("clicked"); 
}); 

DEMO

+0

Вот и все. Большое вам спасибо, @michael, отлично разобрался в этой проблеме. Большое спасибо! – Bryce

+0

Добро пожаловать! – baao

+0

jQuery имеет метод переключения класса (с анимацией) http://api.jquery.com/toggle/ –