Я работаю над созданием сценария карты, состоящего из двух этапов. Выбор карты> открывает соответствующее окно справа Нажатие кнопки «Применить сейчас» в этом открывшемся окне> открывает соответствующее окно внизу.Удалить активный класс, нажав на элемент брата родителя в JavaScript
В настоящее время все работает по назначению, кроме: (.gaccaiGET), тем самым удаляя нижний div (.gara). Прямо сейчас он активирует «Получить карту», даже если вы деактивируете селектор карт.
Независимо от того, как я стараюсь (с помощью навыков начинающего js), я не могу заставить его работать.
Кроме того, если вы посмотрите на html и css, вы увидите, что большинство элементов позиционируются как абсолютные, что является очень плохим способом сделать эту работу. К сожалению, я не мог понять способ сделать положение относительно, потому что
.divclass.active + .otherdivclass { css }
работает только для брата элементов, и, даже, только для элементов брата, которые находятся рядом друг с другом. Это привело к написанию бедных html и css, чтобы они выглядели и работали так, как я этого хочу. Если у вас есть какие-либо советы по этому вопросу, пожалуйста, дайте мне знать!
Благодаря
(function() {
var links = Array.prototype.slice.call(document.querySelectorAll('.gacca1'));
var links2 = Array.prototype.slice.call(document.querySelectorAll('.gacca2'));
var links3 = Array.prototype.slice.call(document.querySelectorAll('.gaccaiGET'));
var toggleClass = function (className, element) {
element.classList.toggle(className);
};
var clickHandler = function (linksToDisable) {
return function() {
toggleClass('active', this);
linksToDisable.filter(function (link) {
return link.classList.contains('active');
})
.forEach(function (link) {
toggleClass('active', link);
});
};
};
links.forEach(function (link) {
link.addEventListener('click', clickHandler(links2));
});
links2.forEach(function (link) {
link.addEventListener('click', clickHandler(links));
});
links3.forEach(function (link) {
link.addEventListener('click', function() {
toggleClass('active', this);
});
});
}());
*** большинство элементов расположены абсолютным *** на самом деле абсолютное позиционирование является другом селектора CSS, в некоторых случаях обычно селектор CSS не может выбрать элемент, но если вы поменяете элементы и используете абсолютное позиционирование для их позиционирования, будет использоваться селектор CSS. –
Я не понимаю, в чем проблема здесь, похоже, что демонстрация удалась, выбирая элемент слева, отобразит кнопку Get card ... щелчок по ней снова скроет эту кнопку. Разве это не то, что вы хотите? –
Итак, вы не видите проблемы с css и html? Хорошо знать! Что касается проблемы с Javascript, я имел в виду, что как только вы нажмете кнопку «Получить карту» в открывшемся окне, откроется другое окно. Это окно не закрывается снова, как только вы удаляете выбор карты. CARD> CARD WINDOW> ПОЛУЧИТЕ КАРТОЧНОЕ ОКНО. Когда вы закрываете «CARD WINDOW», «GET A CARD WINDOW» также должно автоматически закрываться, и когда вы снова открываете ту же «CARD», она не должна отображать ранее открытое «GET A CARD WINDOW». Надеюсь, я объяснил достаточно хорошо. – Romtim