Ответы пользователя по тегу JavaScript
  • Почему не срабатывает addEventListener при событии click?

    xakplant
    @xakplant
    Автор сайта xakplant.ru
    Вам нужно вешать событие на элемент в котором лежат элементы которые пришли по AJAX или вешать на них событие уже после XMLHttpRequest. Возможно вы пытаетесь повесить событие на элементы, которых нет во время исполнения скрипта addEventListener('click'......
    Ответ написан
    Комментировать
  • Javascript сортировка товаров по цене?

    xakplant
    @xakplant
    Автор сайта xakplant.ru
    Вот написал пример сортировки по цене.
    Только parent у меня body, у вас наверное будет какой-то другой

    var items = document.querySelectorAll('.appartments-item');
    var parent = document.body;
    var SortElements = new Object();
    items.forEach(function(item, indx){
      var itemValue = parseInt(item.querySelector('.appartments-item__price').textContent.replace('руб', '').replace(/\s+/g, ''));
      SortElements[itemValue] = {'element': item, 'index': indx} ;
    });
    var keys = Object.keys(SortElements);
    function compareNumeric(a, b) {
      a = parseInt(a);
      b = parseInt(b);
      if (a < b) return 1;
      if (a > b) return -1;
    }
    keys.sort(compareNumeric);
    keys.map(function(key, indx){
      parent.insertAdjacentElement('beforeend', SortElements[key]['element']);
    });
    Ответ написан
    4 комментария
  • В чем разница двух кодов js?

    xakplant
    @xakplant
    Автор сайта xakplant.ru
    Потому, что во втором случае вы устанавливаете свойство объекта (elem.blur) и свойство равно функции.
    Событие не срабатывает. Если например сделать
    elem.blur = function(){
        console.log('--');
    }
    elem.blur(); // выведет '--'


    Короче это не событие. Это вам не Window)
    Ответ написан
    Комментировать
  • Как вызвать одно модальное окна с разных кнопок?

    xakplant
    @xakplant
    Автор сайта xakplant.ru
    Специально для этого сделал модалку. Вот ссыла
    Внизу нужно кое-что переопределить
    new XMC({
        bodyID: 'rara',  // id для блока с контентом
        backgroundLayerID: 'lusia',  //id для фона
        selector: 'data-type', // атрибут у кнопок которые вызывают эту модалку
        selectorValue: 'openModalForm', // Значение атрибута
        btnId: 'fbgmfClose',
        content: 'Привет', // Содержание модалки
        classListBg: ['zuzu', 'zaza'], // Классы для wrappera
        classListBody: ['zuzu', 'zaza2'], // Классы для блока с содержанием
        classListBtn: ['zuzu', 'zaza3'], // Классы для кнопки закрыть
        styleBg: {          // Стили врапера. Пишем по js-су
            top: '0',
            left:'0',
            right: '0',
            bottom: '0',
            position: 'fixed',
            background: '#00000090',
            justifyContent: 'center',
            alignItems: 'center',
            zIndex: '6'
        },
        styleBody: {      // Стили блока с контентом. Пишем по js-су
            minWidth: '200px',
            minHeight: '200px',
            background: '#ffffff',
            justifyContent: 'center',
            alignItems: 'center',
        },
        btnStyle: {   // Стили кнопки закрыть. Пишем по js-су
            width: '40px',
            height: "40px",
            background: '#ffffff',
            display: 'flex',
            justifyContent: 'center',
            alignItems: 'center',
            position: 'absolute',
            top: '5%',
            right: '5%',
            cursor: 'pointer'
        }
    });
    Ответ написан
    Комментировать
  • Как в wp работает ajax?

    xakplant
    @xakplant
    Автор сайта xakplant.ru
    Для начала рекомендую вам мою статью. Там описано как вывести пост в модальном окне. Это немного не то, но поможет разобраться с ajax в wp. Вот ссылка .

    Далее. В начале статьи я описываю как работать с WP_query
    Вы будите изменять массив агрументов для него, чтобы получить ещё новости по событию.
    Примерно вы будете передавать массив
    $args = array(
    'post_type' => 'post',
    'offset'=> '' // отступ, сколько постов пропустить при запросе из базы 
    'posts_per_page'=> 10 // количество постов
    );


    Скорее всего вы просто будите менять offset. Если изначально не указать posts_per_page то количество постов будет такое как в настройках wp

    Про js.
    Рекомендую вот такую статью для того чтобы понять как на чистом js написать ajax для wordpress

    Ну так вот. Чтобы запоминать состояние прокрутки предлагаю вам устанавливать hash адреса
    window.location.hash = 2 // страница 2 например

    Когда пользователь будет попадать на страницу проверяйте hash и в зависимости от него отдавайте ему нужные записи. (Так можно пользователь будет грузить меньше данных и сможет переходить обратно если перешёл на статью)
    А при событии на которое повешена подгрузка записей изменяйте hash и делайте AJAX-запрос
    Ответ написан
    2 комментария
  • Как поставить высоту блока div в зависимость от ширины?

    xakplant
    @xakplant
    Автор сайта xakplant.ru
    Думаю что вопрос актуальный. Так что напишу.
    Есть библиотека Stickjaw.js
    Подключаете в футоре и вызываете скриптов ( в документации написано, ни чего сложного )

    Чтобы сделать высоту такой же как ширину нужно в блок добавить атрибут data-proportion-h="1". 1 - это пропорция. Если вам нужно сделать, чтобы высота была как две ширины то пишите 2 т.е data-proportion-h="2"

    Например
    <div data-proportion-h="1" style="widht:200px;"></div><!-- Высота 200px -->
    <div data-proportion-h="2" style="widht:200px;"></div><!-- Высота 400px -->
    <div data-proportion-h="0.5" style="widht:200px;"></div><!-- Высота 100px -->
    Ответ написан
    Комментировать
  • Как подружить MVC с Ajax?

    xakplant
    @xakplant
    Автор сайта xakplant.ru
    На моём сайте есть расписанный пример, может он подойдёт
    Ответ написан
    Комментировать