Вот что у меня есть:
SVG с несколькими строками.У них есть типы как классы CSS.Например: .pen1 .pen2 .pen3 .pen4.и .special
Каждая строка имеет одну из первых четырех и может иметь .spcial!Есть также несколько специальных строк.
Возможно активировать и деактивировать каждый из этих классов с помощью кнопок.
Моя проблема:
(строка A имеет .pen1, строка B имеет .pen1 .special, строка C имеет .pen2, строка D имеет .pen2 .special)
Следующая процедура:
- 1) Я нажимаю кнопку для .pen1: A & B исчезают
- 2) Я нажимаю кнопку для .special: D отключается и появляется B
- 3) Я нажимаю кнопкудля .pen1: появляется A и B исчезают
Но мне нужно, чтобы оба исчезли в 2), и после этого оба должны появиться снова в 3).
Мое текущее решение: если янажмите кнопку для .pen1. Я устанавливаю флаг, который был нажат, и проверяю этот флаг, когда я нажимаю .special -> Это работает, но только если только один класс имеет свой собственный и класс .special
Это мой код прямо сейчас:
для специального переключения:
if (this._pen1|| this._pen2|| this.pen3|| this.pen4 ){
if (this.special) {
if (this.pen1) {
[...].find('svg .' + _PENSTYLES.special).not('.' + _PENSTYLES.pen1).hide(0);
}
if (this.pen2) {
[...].find('svg .' + _PENSTYLES.special).not('.' + _PENSTYLES.pen2).hide(0);
}
if (this.pen3) {
[...].find('svg .' + _PENSTYLES.special).not('.' + _PENSTYLES.pen3).hide(0);
}
if (this.pen4) {
[...].find('svg .' + _PENSTYLES.special).not('.' + _PENSTYLES.pen4).hide(0);
}
} else {
if (this.pen1) {
[...].find('svg .' + _PENSTYLES.special).not('.' + _PENSTYLES.pen1).show(0);
}
if (this.pen2) {
[...].find('svg .' + _PENSTYLES.special).not('.' + _PENSTYLES.pen2).show(0);
}
if (this.pen3) {
[...].find('svg .' + _PENSTYLES.special).not('.' + _PENSTYLES.pen3).show(0);
}
if (this.pen4) {
[...].find('svg .' + _PENSTYLES.special).not('.' + _PENSTYLES.pen4).show(0);
}
}
} else {
[...].find('svg .' + _PENSTYLES.special).toggle(0);
}
this.special= !this.special;
для переключения pen1-4:
if (this.special) {
[...].find('svg .' + _PENSTYLES.pen1).not('.' + _PENSTYLES.special).toggle(0);
} else {
[...].find('svg .' + _PENSTYLES.pen1).toggle(0);
}
this.pen1= !this.pen1;
Я надеюськто-то может помочь мне, как я делаю это для моей проблемы с несколькими строками.Потому что сейчас они pen2 переопределяют pen1 и показывают / скрывают все, что было исключено в других.