Ответы пользователя по тегу HTML
  • Почему при перезагрузке страницы не выполняется условие скрипта?

    Хорошо, когда есть на что посмотреть velikorodnov.com/wordpress/flatastic/classic

    Теперь все ясно. Ты забыл указать, что твой элемент .remove-item это ссылка. Это меняет все. Переход по ссылке происходит раньше, чем обрабатывается твой обработчик события. Это можно предотвратить, передав колбеку объект события и обратиться к ее методу

    $(".remove-item").click(function(e) {
      e.preventDefault();
      if ($(".fixed-bottom .cart_list li").hasClass("empty")) {
        $(".fixed-bottom").hide();
      } else {
        $('#foot-carousel').data('owlCarousel').removeItem($(this));
        $(".fixed-bottom").show();
      };
    });

    Перезагрузка страницы не произойдет и твои условия будут выполнены, но тогда твой сервер не узнает, что товар был удален из корзины, потому что сейчас эти данные передаются на бекенд именно через перезагрузку страницы. Тогда тебе придется исполнять этот запрос самостоятельно, через ajax, передавая те параметры, которые прописаны в ссылке.

    Дополнение
    Если элементы, на которые вы добавлили обработчик событий появляются на странице динамически, то есть в результате работы других скриптов, то ваш обработчик на них не сработает.

    В таких случаях нужно использовать делегирование

    $('родитель-элементов-который-точно-есть-на-странице').on(
    'click', 
    '.remove-item', 
    function(e) { /*...далее по списку... */ });


    Без этого ваш обработчик вообще никогда не запускается, чтобы мы внутри него не прописали.
    Ответ написан
    22 комментария
  • Как сделать так, что бы при загрузке страницы из-за загружаемых шрифтов не прыгал контент?

    Попробуйте блокам которые сильно меняют свои размеры явно задать высоту и ширину, которую они приобретают при загрузке нужных шрифтов. Да, нудно и кропотливо, да, не всегда помогает, но может снизить остроту проблемы.
    Ответ написан
    Комментировать