Ответы пользователя по тегу JavaScript
  • Как проверить GET запрос?

    @UndineS
    в цикле можно использовать команду continue для перехода к следующей итерации (не выполняем далее действия с текущими значениями счетчиков, а переходим к следующим значениям)
    Например:
    var index = 0, 
        id = 0;
    
    while (i < 4) {
       i += 1;
       while (j > 4) {
          j +=1;
          if (i == 0 && j==0) {
             continue;
          } else {
             let image = new Image;
             image.src = "../img/designers/" + index + '.' + id + ".jpg";
          }
       }
    }


    Можно использовать как в while, так и в for:
    https://learn.javascript.ru/while-for

    Если закономерность отсутствующих фото выявить нельзя, то можно получить ответ сервера таким образом:
    var xhr = new XMLHttpRequest();
    
    xhr.open('GET', '/ajax-xmlhttprequest', true);
    
    xhr.send();
    
    xhr.onreadystatechange = function() {
      if (this.readyState != 4) return;
    
      // по окончании запроса доступны:
      // status, statusText
      // responseText, responseXML (при content-type: text/xml)
    
      if (this.status != 200) {
        // обработать ошибку
        alert( 'ошибка: ' + (this.status ? this.statusText : 'запрос не удался') );
        return;
      } else {
      alert('ответ 200! ссылка рабочая');
    }
    
      // получить результат из this.responseText или this.responseXML
    }


    Подробнее тут: https://learn.javascript.ru/ajax-xmlhttprequest
    Ответ написан
    2 комментария
  • Как запомнить значение атрибута data?

    @UndineS
    В конкретно Вашем случае - можно так:
    $('.js-modal-join').click(function() {
            alert($('.js-join').data('id'))
        });


    А на практике модальные окна, например, часто используются, чтобы показать форму, в которой что-то нужно заполнить/кликнуть (например, для отправки заявки). Чтобы получить информацию, с какого товара был клик (заявка на какой товар оставляется), то в обработчике клика прописывают заполнение скрытого поля формы (), значение этого поля отправляется с другими данными формы на последующую обработку.
    Ответ написан
    1 комментарий
  • Js код работает на половину на адаптиве из-за чего такое может быть?

    @UndineS
    Для анимации:
    Раскомментируйте в блоке "@media all and (max-width: 650px){ ... }" анимацию
    animation: moon-star-one 4s infinite; animation-timing-function: linear;

    (аналогично для второй и третьей звезды)
    и сам код анимации
    @keyframes moon-star-one {
    	0% { transform:translate(100%, -200%) scale(1.19) rotate(0deg); }
    	50% { transform:translate(100%, -200%) scale(1) rotate(180deg); }
    	100% { transform:translate(100%, -200%) scale(1.19) rotate(360deg); }
    }
    @keyframes moon-star-two {
    	0% { transform:translateY(-25%) scale(1) rotate(0deg); }
    	50% { transform:translateY(-25%) scale(0.81) rotate(180deg); }
    	100% { transform:translateY(-25%) scale(1) rotate(360deg); }
    }
    @keyframes moon-star-three {
    	0% { transform:translate(200%, 25%) scale(0.81) rotate(0deg); }
    	50% { transform:translate(200%, 25%) scale(0.62) rotate(180deg); }
    	100% { transform:translate(200%, 25%) scale(0.81) rotate(360deg); }
    }


    Для свайпа:
    досканально разобраться на ходу не получается, но попробуйте в блоке
    $('section[name=sleep]').swipe( {
    ...
    });

    поменять друг на друга слова left и right в условиях direction (содержимое блока if не менять, только условие), так как в блоке с солнцем это работает. Скорее всего, там какой-то конфликт в расчетах происходит в блоке с луной. Версия RAX7 насчет двух блоков тоже должна быть верной, исправьте и то, и то.
    Ответ написан
    Комментировать
  • Почему не работает document.onclick на сдвинутых элементах с Position:absolute?

    @UndineS
    Посмотрите ответы к вопросу События для динамически добавленных в DOM элементов

    Кратко: если объект DOM переносится куда-либо (не просто изменение CSS, а удаление+вставка, перенос в другой блок), то события jQuery не сработают на нем стандартным способом
    document.onclick = function(event){
    //код функции
    }


    Необходимо использовать функцию on() для динамических элементов:
    $(document).ready(function() {
        ...
        $('.clickable-elements element').on('click', 'a', function(e){
            //Какое-то действие
        });
       ...
    });
    Ответ написан
  • Как динамически вставить и выполнить скрипт на странице?

    @UndineS
    Посмотрите в сторону функции eval().
    Описание: https://learn.javascript.ru/eval

    Правда, eval() редко используется. Чаще, если необходимо выполнить какие-либо расчеты после, например, заполнения пользователем какого-то поля, описывается обработчик события (отлавливается клик пользователя на кнопку, отправка формы, наведение курсора куда-либо и т. д.).
    Описание: https://learn.javascript.ru/introduction-browser-events

    Если расчет достаточно сложный и требует связи с бэкендом - используют AJAX-запросы.
    Ответ написан
    1 комментарий