Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как правильно переинициализировать элемент ? (https://javascript.ru/forum/jquery/83599-kak-pravilno-pereinicializirovat-ehlement.html)

Sice 20.01.2022 13:58

Как правильно переинициализировать элемент ?
 
Добрый день. У меня задача выводить свежие данные из БД каждую минуту и показывать пользователю с помощью jQuery.
Код:
$query = mysqli_query($db, "SELECT * FROM `data` ORDER BY `id`");
$count = 0;
while ($select = mysqli_fetch_assoc($query))
{ 
    $db_data = $select['name'];
}

<div id="main" class="row">
        <div class="col border-grid">
            Имя из БД
        </div>
   </div>

Вот так перезагружаю страницу:
<script>
        setInterval(function() { 
            $('#main').load(window.location.href + ' #main' )
        }, 10000)    
    </script>

При этом я использую Bootstrap Popover, всплывающие подсказки, при наведении на элемент.
<script>
         $('.myPopover').popover({
         html : true,
         content: function() {
          var elementId = $(this).attr("data-popover-content");
          return $(elementId).html();
         }
         });
      </script>

Элемент работает первые 10 секунд нормально - но как только срабатывает обновлении страницы, то есть jQuery setInterval срабатывает, перестают работать подсказки.

Подскажите, как правильно организовать эту работу, чтобы после перезагрузки всё работало? Спасибо!

рони 20.01.2022 14:15

Sice,
https://api.jquery.com/load/
в jquery load есть параметр complete туда и вставьте $('.myPopover').popover...

Sice 20.01.2022 14:48

Цитата:

Сообщение от рони (Сообщение 543142)
Sice,
https://api.jquery.com/load/
в jquery load есть параметр complete туда и вставьте $('.myPopover').popover...

Перестала работать перезагрузка и всплывающие подсказки, наверное сделал что-то не так
<script>
        setInterval(function() { 
            $('#main').load(window.location.href + ' #main',
         $('.myPopover').popover({
         html : true,
         content: function() {
          var elementId = $(this).attr("data-popover-content");
          return $(elementId).html();
         }
         });
)
        }, 10000)    
    </script>

рони 20.01.2022 15:30

Sice,
оберните в функцию строки с popover !!!

рони 20.01.2022 15:38

Sice,
setInterval(function() {
                $('#main').load(window.location.href + ' #main', function() {
                        $('#main .myPopover').popover({
                            html: true,
                            content: function() {
                                var elementId = $(this).attr("data-popover-content");
                                return $(elementId).html();
                            }
                        });
                    }
               )
            }, 10000)

Sice 20.01.2022 15:54

Цитата:

Сообщение от рони (Сообщение 543142)
Sice,
https://api.jquery.com/load/
в jquery load есть параметр complete туда и вставьте $('.myPopover').popover...

Цитата:

Сообщение от рони (Сообщение 543146)
Sice,
оберните в функцию строки с popover !!!

Благодарю!


Часовой пояс GMT +3, время: 17:15.