Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   после AJAX перестаёт работать event (https://javascript.ru/forum/events/80058-posle-ajax-perestajot-rabotat-event.html)

voraa 24.04.2020 11:54

Цитата:

Сообщение от laimas (Сообщение 523341)
Точно. Хотя не мала ли задержка в таком случае, в смысле насколько это полезно?

Это к автору
Хотя, как он писал
>> эта ссылка с ajaxGET() вызывает fancybox с инфой
То вполне нормально

laimas 24.04.2020 12:23

Может быть, ну тогда таймер->очистка и запрос/нет по условию, то есть уход в общем то можно и не обрабатывать.

PS. То есть просто проверить по срабатываю над кем в это время находимся.

greenwar 24.04.2020 12:59

там 300ms, этого достаточно, чтобы на "промах" мышки не реагировать.

так, вопрос: почему даже при том, что я сначала гружу аяксом таблицу, а в конце таблицы ставлю вызов set_ajax_hover_cb(), даже в этом случае всё равно не прописывается как надо...
таблица то уже загружена
все ссылки обозначены
этот set_ajax_hover_cb() должен выставить events на уже существующие ссылки...
но не выставляет :(

voraa 24.04.2020 13:19

Сложно ответить не видя, как вы формируете таблицу.
Проще самому просто залезть в отладчик и по шагам смотреть, что когда выполняется, Находятся ли новые ссылки.

greenwar 24.04.2020 13:20

ну в смысле как?
сервер отдаёт строку, эта строка втыкается в <div>
втыкает её jQuery через AJAX
как он там её втыкает...

а как отладку по шагам смотреть?

voraa 24.04.2020 13:49

Цитата:

Сообщение от greenwar (Сообщение 523354)
втыкает её jQuery через AJAX

Через AJAX строку можно получить. Но сам AJAX ее никуда не вставит.
Это вы должны вставить полученную строку div.

Цитата:

Сообщение от greenwar (Сообщение 523354)
а как отладку по шагам смотреть?

В любом браузере есть отладчик. Там можно видеть код, ставить на операторах точки останова, смотреть значение переменных...
Так же можно просмотреть все элементы, которые есть в DOM, посмотреть их стили, какие классы CSS к ним применились...
Как можно без отладчика что то делать?

voraa 24.04.2020 13:59

Цитата:

Сообщение от greenwar (Сообщение 523336)
success: function(data) {ajaxRESULT(data); set_ajax_hover_cb();}

там проблемка, она фиксирована, т.е. я её не создаю отдельно для этого вызова, а юзаю готовую...
и запихнуть туда ф-ю как?

Кто фиксированная? Вы получаете строку. Она в data. Очевидно ajaxRESULT вставляет эту строку в div. Ну и потом надо навесить обработчики с помощью set_ajax_hover_cb();

greenwar 24.04.2020 15:02

вот этот success: находится в ф-и ajaxPOST(), которая одна для всех
(фиксирована)
я её не создаю каждый раз заново
и как туда воткнуть внутрь success что-то?

success: function(data) {ajaxRESULT(data); set_ajax_hover_cb();}

вот так всё работает, кстати... Тогда надо через переменную передать название ф-и и запускать её внутри...

greenwar 24.04.2020 15:12

Цитата:

Сообщение от voraa (Сообщение 523358)
Через AJAX строку можно получить. Но сам AJAX ее никуда не вставит.
Это вы должны вставить полученную строку div.

ну вставляю я эту строку с html-кодом таблицы в div... на что смотреть то?
там опять же нет никакой магии. string с куском кода.

Цитата:

В любом браузере есть отладчик. Там можно видеть код, ставить на операторах точки останова, смотреть значение переменных...
Так же можно просмотреть все элементы, которые есть в DOM, посмотреть их стили, какие классы CSS к ним применились...
Как можно без отладчика что то делать?
да, я ошибки там смотрю. Прям чтобы по шагам отлаживать пока не сталкивался...

greenwar 24.04.2020 15:42

Цитата:

Сообщение от greenwar (Сообщение 523363)
вот этот success: находится в ф-и ajaxPOST(), которая одна для всех
(фиксирована)
я её не создаю каждый раз заново
и как туда воткнуть внутрь success что-то?

success: function(data) {ajaxRESULT(data); set_ajax_hover_cb();}

вот так всё работает, кстати... Тогда надо через переменную передать название ф-и и запускать её внутри...

в общем сделал, работает :dance:
спасибо всем за участие
извините, что столько времени отнял с очевидной проблемой


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