#javascript #jquery #onclick
#язык JavaScript #jquery #onclick
Вопрос:
Я не могу понять, почему это не работает, я сделал аналогичный код, но он не работает, я не могу понять, почему класс и атрибут добавляются к кнопке, но показ события не срабатывает, и невозможно добавить класс в элемент popup_cart, как будто его не существует
$(document).ready(function(){ $(document).on("click", "#user_panel", function(){ if(typeof $(this).attr('click') === "undefined"){ $(this).attr('click', 'active' ); $(this).addClass('active_e'); $('#popup_user_panel').show(); }else{ $(this).removeAttr('click', 'active' ); $(this).removeClass('active_e'); $('#popup_user_panel').hide(); } }); $(document).mouseup(function (e) { var container = $('.top_right_nav'); if (container.has(e.target).length === 0){ $('#user_panel').removeClass('active_e'); $('#user_panel').removeAttr('click', 'active' ); $('#popup_user_panel').hide(); } }); $(document).on("click", "#panel_bag", function(){ if(typeof $(this).attr('click') === "undefined"){ $(this).attr('click', 'active' ); $(this).addClass('active_e'); $('#popup_cart').show(); }else{ $(this).removeAttr('click', 'active' ); $(this).removeClass('active_e'); $('#popup_cart').hide(); } }); $(document).mouseup(function (e) { var container = $('.top_right_nav'); if (container.has(e.target).length === 0){ $('#panel_bag').removeClass('active_e'); $('#panel_bag').removeAttr('click', 'active' ); $('#popup_cart').hide(); } }); });
Комментарии:
1. Я заменил #popup_cart на .popup_cart и id=’popup_cart’ на class=’popup_cart», и по какой-то причине все это сработало, я оставлю вопрос, чтобы выяснить, в чем причина.
2. Это может означать, что в вашем HTML-коде было несколько идентификаторов, когда идентификаторы должны быть уникальными. Вы это проверили?
3. Спасибо за ваш ответ, да, вы абсолютно правы, у меня есть дубликаты элементов мобильной и полной версий сайта. Вопрос можно закрыть. Вопрос решен.
Ответ №1:
Проблема решена, в моем коде элемент дублируется для мобильной и полной версий сайта. Спасибо, Тадас!