У меня есть набор из div
элементов, которые не являются дочерними элементами друг друга, и каждый из них имеет отдельные фоновые изображения и поэтому использует отдельные имена классов.Переключить другие специальные классы при переключении на
При нажатии на одно я хочу, чтобы оно было выделено, заменив его фоновое изображение. Если выделен другой div
, я хочу выделить его, заменив его фоновое изображение назад. Если щелкнуто то же самое выделенное div
, я хочу выделить его.
Мой текущий метод заключается в том, чтобы сделать это через toggleClass
, и мне удалось поменять класс div
, на который я нажал, но не для замены остальных.
мне удалось это раньше с div
элементами, что все замены к тому же классу, используя функцию .not
, но я изо всех сил, чтобы сделать это с помощью div
элементов, которые используют индивидуальные, конкретные классы.
JSFiddle версия здесь: https://jsfiddle.net/el_simmo/8cnu776j/3/
$(document).ready(function(){
var theboxes = $("#svg1 #svg2 #svg3");
var clickclasses = $("svg1classclick svg2classclick svg3classclick");
$("[id^='svg']").on("click", function(){
var thissvg = $(this);
var svgclick = $(this).attr("id") + "classclick";
thissvg.toggleClass(svgclick);
theboxes.not(thissvg).removeClass(clickclasses);
});
});
Поместите общий класс во все содержащиеся в SVG div. –
'$ (" # svg1 # svg2 # svg3 ")' это селектор только для 1 элемента. Не для 3. '$ (" svg1classclick svg2classclick svg3classclick ");' Этот тоже, и здесь у вас есть синтаксическая ошибка. Если это класс, то требуется точка (.), Потому что его css selector' $ (".vv1classclick .svg2classclick .svg3classclick"); '. – Petroff