powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как бороться с "мёртвыми" привязанными jquery объектами?
6 сообщений из 6, страница 1 из 1
Как бороться с "мёртвыми" привязанными jquery объектами?
    #39343112
kormot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Понимаю, что заголовок написал тупой, но сформулировать проблему смогу потому что только в самом посте.
Итак, на страничке используются jQuery компоненты типа всплывалок-пояснялок. Например tooltipster . Не принципиально какой из них, сколько я их перебрал, этой проблеме подвержены все.

Итак, эти всплывалки вешаются на нужные элементы на страничке и при наведении мыши на них, всплывает информационное окно с текстом.
На этой страничке активно используется ajax. И вся проблема в такой ситуации:
1. Мышь над элементом с привязанным tooltipster'ом.
2. Всплыло окошко.
3. Выполнился ajax запрос, который удалил/заменил элемент на странице, к которому привязан tooltipster.
4. Информационное окошко tooltipster'а висит после этого и не пропадает.

Я понимаю, почему это происходит. Потому что пропадание инф. окошка происходит при событии "mouseOut" для элемента к которому он привязан. А т.к. этот элемент пропал в момент, когда. инф. окно открыто, то оно и подвисло.

Теперь как я это пытался решать:
1. Временное решение рабочее но грабельное и тупое, это повесил на опрелелённую клавиатурную комбинацию запуск функции, которая обходит все в данный момент открытые инф. окна данного компонента и просто их удаляет.

Хочется решения правильного и красивого, может какой из типстеров довести до ума. Подскажите пожалуйста сам механизм, как это организовать? Пробовал смотреть есть ли события для DOM элементов типа: onDestroy или что-то типа того, чтобы при удалении элемента из дерева DOM проводились для него какие-то изыскания и если надо то совершались какие-либо действия. Но не нашёл.

Помогите!
...
Рейтинг: 0 / 0
Как бороться с "мёртвыми" привязанными jquery объектами?
    #39343143
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kormot, речь об этом tooltipster -е?

Там в описании методов есть примеры того, как закрыть все инстансы, как закрыть через триггер, как через метод...

Почему же получается грабельное и тупое решение? И какое должно быть правильное и красивое?
...
Рейтинг: 0 / 0
Как бороться с "мёртвыми" привязанными jquery объектами?
    #39343165
kormot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA , да тултипстер этот.

Грабельное решение хотя бы потому что требует ручной активации. А красивое и правильное это я написал, то которое удовлетворяет условиям:
- при удалении dom элемента, на который повешен тултипстер, связанный с ним тултипстер уничтожается.
- делается автоматически, и желательно не пробеганием цикла по всем текущим тултипстерам

Зачем в условиях я приписал про избегание цикла, потому что одна из попыток решить эту проблему у меня была такой:
- в коде компонента тултипстера при его инициализации на каком-либо dom элементе, я добавлял в глобальный массив ключ связывающий уникальный идентификатор элемента с экземпляром компонента.
- периодически (раз в секунду) пробегал по массиву и смотрел, если какого-то dom элемента нет с указанным в массиве идентификатором, то гасил связанный с ним экземпляр тултипстера.

Из минусов, почему перешёл на ручной вариант - объектов на странице дохера. Каждую секунду обход этого цикла ощутимо подтормаживает браузер. И добавился геморрой с добавлением элементам на страничке уникальных идентификаторов. (Не id, а например какого-либо аттрибута: rand="случайное число").

Потому и хочется некого тригера для пропадания DOM элемента на страничке.
...
Рейтинг: 0 / 0
Как бороться с "мёртвыми" привязанными jquery объектами?
    #39343190
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kormot,

когда вешаешь свой тулстриппер на элементы, вешай уничтожение этого триппера на событие элемента

не?
...
Рейтинг: 0 / 0
Как бороться с "мёртвыми" привязанными jquery объектами?
    #39343191
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kormot,

на событие "remove"
...
Рейтинг: 0 / 0
Как бороться с "мёртвыми" привязанными jquery объектами?
    #39344275
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kormotИз минусов, почему перешёл на ручной вариант - объектов на странице дохера. Каждую секунду обход этого цикла ощутимо подтормаживает браузер.
А точно-ли нужно много тултипстеров? Одним разве не обойтись?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как бороться с "мёртвыми" привязанными jquery объектами?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]