При клике на кнопку с классом - item-pos-free;
Класс item-pos-free удаляется и добавляется класс item-pos-active
$('.item-pos-free').click(function () {
$((this), '.item-pos-free').removeClass('item-pos-free').addClass('item-pos-active');
});
НО при клике на эту же кнопку с только что присвоенным классом item-pos-active
данная функция не работает . Ошибок в косоле нету. В DOM класс .item-pos-active у этого элемента есть
$('.item-pos-active').click(function () {
$((this), '.item-pos-free').removeClass('item-pos-active').addClass('item-pos-active');
});
jQuery
Почему Jquery добавляет класс, а удалять не хочет этим же способом
.removeClass('item-pos-active').addClass('item-pos-active');
И чо это? Удалил и сразу добавил один и тот же класс, естессно он будет после выполнения хД
И чо это? Удалил и сразу добавил один и тот же класс, естессно он будет после выполнения хД
Я за аккуратность кода, тогда не бывает ошибок. Что же написано вами:
$('.item-pos-free').click(function () {
$((this), '.item-pos-free').removeClass('item-pos-free').addClass('item-pos-active');
});
Отслеживаем клик по элементу с классом '.item-pos-free'
В случае клика у элемента, по которому произошел клик и у ВСЕХ элементов в документе с классом '.item-pos-free' - этот класс удаляем и присваиваем новый 'item-pos-active'
И тут первый казус:
Вы хотите удалить и присвоить класс только у одного элемента (по которому кликнули)?
Тогда пишем $(this).removeClass('item-pos-free').addClass('item-pos-active');
Если у всех
$( '.item-pos-free').removeClass('item-pos-free').addClass('item-pos-active');
Идем дальше. При выполнении первого клика по вашему сценарию не осталось элементов с классом '.item-pos-free', следовательно нет необходимости его упоминать:
$('.item-pos-active').click(function () {
$(this).removeClass('item-pos-active').addClass('item-pos-active');
}); - если только по которому кликнули
$('.item-pos-active').click(function () {
$('.item-pos-active').removeClass('item-pos-active').addClass('item-pos-active');
});-по всем элементам с классом '.item-pos-active'
Предположим, что вы в первом клике изменили только один элемент, тогда Ваша запись будет актуально для нажатия по этому элементу и всем '.item-pos-free'
А ТЕПЕРЬ САМОЕ ГЛАВНОЕ: что вы написали далее
.removeClass('item-pos-active').addClass('item-pos-active'); - у элемента удаляем класс 'item-pos-active' и добавляем 'item-pos-active'. Получается два взаимоисключающих действия.
Осмелюсь предположить, что Вы хотите вернуть предыдущий класс элементу, тогда:
$('.item-pos-active').click(function () {
$(this).removeClass('item-pos-active').addClass('.item-pos-free');
});
Все проблемы программиста начинаются в грязном коде. Нужно думать что Вы пишите, тогда не будет ошибок и проблем
$('.item-pos-free').click(function () {
$((this), '.item-pos-free').removeClass('item-pos-free').addClass('item-pos-active');
});
Отслеживаем клик по элементу с классом '.item-pos-free'
В случае клика у элемента, по которому произошел клик и у ВСЕХ элементов в документе с классом '.item-pos-free' - этот класс удаляем и присваиваем новый 'item-pos-active'
И тут первый казус:
Вы хотите удалить и присвоить класс только у одного элемента (по которому кликнули)?
Тогда пишем $(this).removeClass('item-pos-free').addClass('item-pos-active');
Если у всех
$( '.item-pos-free').removeClass('item-pos-free').addClass('item-pos-active');
Идем дальше. При выполнении первого клика по вашему сценарию не осталось элементов с классом '.item-pos-free', следовательно нет необходимости его упоминать:
$('.item-pos-active').click(function () {
$(this).removeClass('item-pos-active').addClass('item-pos-active');
}); - если только по которому кликнули
$('.item-pos-active').click(function () {
$('.item-pos-active').removeClass('item-pos-active').addClass('item-pos-active');
});-по всем элементам с классом '.item-pos-active'
Предположим, что вы в первом клике изменили только один элемент, тогда Ваша запись будет актуально для нажатия по этому элементу и всем '.item-pos-free'
А ТЕПЕРЬ САМОЕ ГЛАВНОЕ: что вы написали далее
.removeClass('item-pos-active').addClass('item-pos-active'); - у элемента удаляем класс 'item-pos-active' и добавляем 'item-pos-active'. Получается два взаимоисключающих действия.
Осмелюсь предположить, что Вы хотите вернуть предыдущий класс элементу, тогда:
$('.item-pos-active').click(function () {
$(this).removeClass('item-pos-active').addClass('.item-pos-free');
});
Все проблемы программиста начинаются в грязном коде. Нужно думать что Вы пишите, тогда не будет ошибок и проблем
Горспорткомитет Bishkek
Здравствуйте) я в предыдущем ответе прокомментировал что исправил))) но у меня так и не заработало) нужно добавлять и удалять класс только на элементе по которому нажали
По вашему варианту я ещё не делал
Добавляя (this).removeClass
Первый клик у меня работал а вот второй не работает (
$('.item-pos-free').click(function () {
$((this), '.item-pos-free').removeClass('item-pos-free').addClass('item-pos-active');
});
$('.item-pos-active').click(function () {
$((this), '.item-pos-active').removeClass('item-pos-active').addClass('item-pos-free');
});
По вашему варианту я ещё не делал
Добавляя (this).removeClass
Первый клик у меня работал а вот второй не работает (
$('.item-pos-free').click(function () {
$((this), '.item-pos-free').removeClass('item-pos-free').addClass('item-pos-active');
});
$('.item-pos-active').click(function () {
$((this), '.item-pos-active').removeClass('item-pos-active').addClass('item-pos-free');
});
Похожие вопросы
- Почему раньше JQuery всем нравился, а теперь все от него уходят? Что произошло-то? Чем плох JQuery?
- Помогите правильно оформить jQuery.
- jQuery получаю html, преобразую его в объект, как преобразовать обратно?
- Как заставить скрипт jQuery видеть изменения на странице html?
- Плавная прокрутка к элементу страницы на jquery
- Не лучше в место темы jQuery сделать тему C/C++/C# ???
- Стоит ли учить jQuery без JavaScript?
- Странное число после сложения на jquery
- Что учить в начале Jquery или React?
- Ajax. jQuery. Передать все значения табицы БД из PHP в JS и вывести их на экран. PHP 7.3
$('.item-pos-free').click(function () {
$((this), '.item-pos-free').removeClass('item-pos-free').addClass('item-pos-active');
});
$('.item-pos-active').click(function () {
$((this), '.item-pos-active').removeClass('item-pos-active').addClass('item-pos-free');
});