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

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

    Для этого можно использовать событие "DOMContentLoaded", которое срабатывает, когда загружены все элементы страницы. Например, так:
    document.addEventListener('DOMContentLoaded', function() {
      document.getElementById('connect_wallet').addEventListener('click', event => {
            const metamask = document.getElementById("metamask");
            const phantom = document.getElementById("phantom");
    
            if (metamask.style.display === "none" && phantom.style.display === "none") {
              metamask.style.display = "";
              phantom.style.display = "";
            } else {
              metamask.style.display = "none";
              phantom.style.display = "none";
            }
          });
    });

    Также убедитесь, что элементы с id "metamask" и "phantom" действительно существуют на странице. Если эти элементы генерируются динамически, то нужно дождаться их появления на странице и только после этого привязываться к ним.
    Ответ написан
    Комментировать
  • Можно ли получить стутус изменения данных в indexedDB?

    @Khamzabek
    Да, есть способ: метод put возвращает объект IDBRequest, у которого есть событие onsuccess. Если запись была добавлена, то onsuccess вызовется без ошибок. Если запись была изменена, то событие onsuccess вызовется с объектом IDBKeyRange.

    Пример:
    function dbput(table, data){
        let openRequest = indexedDB.open('mydb', 1);
        openRequest.onsuccess = function() {
            let db = openRequest.result;
            let transaction = db.transaction(table, 'readwrite');
            let objectStore = transaction.objectStore(table);
            let request = objectStore.put(data);
            request.onsuccess = function(event) {
                if(event.target.result instanceof IDBKeyRange) {
                    console.log('Record updated')
                } else {
                    console.log('Record added')
                }
            };
            db.close();
        };
    }
    Ответ написан
  • Как обернуть текст в тег span?

    @Khamzabek
    jQuery(function($){
      $('#loadmore').click(function(){
        $(this).text('Загружаю...'); // изменяем текст кнопки, вы также можете добавить прелоадер
        var data = {
          'action': 'loadmore',
          'query': true_posts,
          'page' : current_page
        };
        $.ajax({
          url:ajaxurl, // обработчик
          data:data, // данные
          type:'POST', // тип запроса
          success:function(data){
            if( data ) { 
              $('#loadmore').html('<div class="loadmore-wrapper"><span>Загрузить ещё</span></div>').before(data); // вставляем новые посты
              current_page++; // увеличиваем номер страницы на единицу
              if (current_page == max_pages) $("#loadmore").remove(); // если последняя страница, удаляем кнопку
            } else {
              $('#loadmore').remove(); // если мы дошли до последней страницы постов, скроем кнопку
            }
          }
        });
      });
    }); 
    
    В данном коде нужно изменить строку:
    
    $('#loadmore').text('Загрузить ещё').before(data);
    
    на
    
    $('#loadmore').html('<div class="loadmore-wrapper"><span>Загрузить ещё</span></div>').before(data); 
    
    Это добавит новый div с классом "loadmore-wrapper", внутри которого будет тег span с текстом "Загрузить ещё".

    Вот что на это думает ChatGpt
    Ответ написан
    Комментировать