@EvgenyKabakov

Как добавить class к элементу при выполнении условия if?

Всем доброго времени суток!
Прошу, подскажите, кто знает, замучился с этим кодом уже.
Имеется функция, согласно которой я хочу добавить класс объекту при выполнении определенного условия после нажатия на кнопку.

Если проще, то есть блок с кнопкой для загрузки файлов на сайт, под ней список, в который будут выводиться имена файлов и кнопки для удаления файлов из списка. Так вот, нужно чтобы когда список с файлами пуст, на элемент навешивался класс с ховер-эффектом для этого элемента.

$(document).ready(function(){
    $('a.delete_file').click(function(){
    $(this).parent().remove();
        
    if( $('.files').children().length > 0) {
        $(this).parent().find('.upload_btn').removeClass('upload_btn_hovered');
    } else {
        $(this).parent().find('.upload_btn').addClass('upload_btn_hovered');
    };
    
});
});


<div class="photo_loader">
            <span class="loadertext">Передняя сторона</span>
            <div class="upload_btn">Прикрепить файл</div>
            <div class="files">
                <div class="file">
                    <span class="file_name">Foto.jpg</span>
                    <a href="#" class="delete_file"></a>
                </div>
            </div>
        </div>
  • Вопрос задан
  • 336 просмотров
Решения вопроса 1
brusher
@brusher
Фронт-енд разработчик
Проблема в этом месте: $(this).parent().find('.upload_btn').
Кнопка не находится, т.к. вы её ищете внутри парента, который удаляете. К тому же она лежит у вас намного выше по дереву.
Замените на $('.upload_btn') или если таких формочек много на странице, то сначала определите ссылку на кнопку:
var $btn = $(this).parents('.photo_loader').find('.upload_btn');
, а затем удаляйте парента и удаляйте/присваивайте класс для $btn.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
if ($('#element').is(':empty')){
  //do something
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы