@Silverviql

Как ограничить pjar на обновление иконки?

Я хочу сделать динамическое обновление иконки уведомление на yii2. Но проблема в том что он начинает создавать div и в него закидывать данные из модели таблицы. Так же он обновляет иконку , но нажать на нее можно только в то время пока скрипт ее не обновит, после иконка становится некликабельной, чтобы можно было на нее нажать надо обновлять страницу и открыть до того как скрипт не отработает.

Во вьюшке прописал pjax.
<?php Pjax::begin(['id' => 'pjax-container']); ?> 
echo $notifications == null ? '<div class="notification-icon">' : '<div class="notification-icon newNotification">'; 
<?php Pjax::end(); ?>


В script.js прописал вызов каждые 3 секунды.

$(document).ready(function(){
    setInterval(function(){
        $.pjax.reload('#pjax-container')
    }, 3000);

Вот это я получаю на выходе.
5adce6025ec7d643707266.png
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ответы на вопрос 2
qonand
@qonand
Software Engineer
Так же он обновляет иконку , но нажать на нее можно только в то время пока скрипт ее не обновит

Нажать на нее нельзя потому что Pjax при обновлении заменяет html находящийся на странице тем что возвращает сервер. Соответственно скрипты привязанные на Ваш html-элемент слетают, и после каждого обновления Pjax их стоит перевешивать
В script.js прописал вызов каждые 3 секунды.

Довольно кривое решение только создающее ненужные на грузки на сервер и на клиент. Для подобных задач лучше использовать сокеты
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Как Вы ловите клик по иконке?
По идее вот так должен ловить:
$('body').on('click', '.someIconClass', function(){
concole.log('уряяя!!!');
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы