|
Как перезапустить JS скрипт для таблицы table из библиотеки после обновления tbody таблицы
|
|||
---|---|---|---|
#18+
Здравствуйте! Есть скрипт библиотеки http://cdn.datatables.net/plug-ins/, который добавляет фильтры и сортировщики для таблицы: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
В процессе, тело таблицы (tbody), к которой применяется скрипт обновляется, и после обновления tbody фильтры, которые добавляются вышеописанной функцией и библиотекой не обновляются, и сортировщики строк перестают работать. Функция обновления tbody: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.
Сгенерировал в методе обновления tbody событие изменения для данной таблицы, но это не помогло - на изменение tbody не реагирует: Код: javascript 1. 2. 3. 4.
Пробовал создать обработчик только только на тело tbody таблицы, но это тоже не сработало: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
Тогда срабатывает при загрузки страницы, а при изменении тела таблицы нет. Подскажите, что нужно ещё сделать, чтобы используемая библиотека применилась уже к обновленному tbody таблицы? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 08:07 |
|
Как перезапустить JS скрипт для таблицы table из библиотеки после обновления tbody таблицы
|
|||
---|---|---|---|
#18+
Vlad__i__mir Подскажите, что нужно ещё сделать, чтобы используемая библиотека применилась уже к обновленному tbody таблицы? Вариантов решения наверняка несколько... Вот тебе парочка - Оформить всю обработку в виде "именной" функции и вызывать ее когда нужно. - Использовать свое "синтетическое" событие и генерить его по мере надобности. В любом случае ты должен решать когда запускать свой скрипт. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 08:48 |
|
Как перезапустить JS скрипт для таблицы table из библиотеки после обновления tbody таблицы
|
|||
---|---|---|---|
#18+
krvsa Vlad__i__mir Подскажите, что нужно ещё сделать, чтобы используемая библиотека применилась уже к обновленному tbody таблицы? Вариантов решения наверняка несколько... Вот тебе парочка - Оформить всю обработку в виде "именной" функции и вызывать ее когда нужно. - Использовать свое "синтетическое" событие и генерить его по мере надобности. В любом случае ты должен решать когда запускать свой скрипт. Сделал в виде именной функции: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39.
Вызываю её после обновления tbody: Код: javascript 1. 2. 3. 4. 5. 6. 7.
В функцию заходит, но после строки Код: javascript 1.
, сразу переходит к концу функции и фильтры у таблицы не обновляются и не работают. Как-будто он не может обновить данные фильтров и другое из обновленного tbody ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 09:36 |
|
Как перезапустить JS скрипт для таблицы table из библиотеки после обновления tbody таблицы
|
|||
---|---|---|---|
#18+
Vlad__i__mir , тут я тебе не помощник... С этим не работал, х/з чего там будет нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 09:52 |
|
Как перезапустить JS скрипт для таблицы table из библиотеки после обновления tbody таблицы
|
|||
---|---|---|---|
#18+
krvsa, спасибо за помощь! Может кто-то уже сталкивался с подобной проблемой ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 10:29 |
|
Как перезапустить JS скрипт для таблицы table из библиотеки после обновления tbody таблицы
|
|||
---|---|---|---|
#18+
Vlad__i__mir , выскажу предположение... Возможно все дело в асинхронности обновления твоего тбоди. Попробуй свою функцию вызвать с некой задержкой (в качестве эксперимента). Vlad__i__mir Вызываю её после обновления tbody: Код: javascript 1. 2. 3. 4. 5. 6. 7.
Вот так Код: javascript 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 11:48 |
|
Как перезапустить JS скрипт для таблицы table из библиотеки после обновления tbody таблицы
|
|||
---|---|---|---|
#18+
Может, АПИ этой штучки почитать? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 12:12 |
|
Как перезапустить JS скрипт для таблицы table из библиотеки после обновления tbody таблицы
|
|||
---|---|---|---|
#18+
ShSerge Может, АПИ этой штучки почитать? Вот, я почитал и сделал как там описано 1) Удалил все строки из tbody с помощью АПИ этой библиотеки Код: javascript 1. 2.
2) уничтожил объект DataTable Код: javascript 1.
3) далее загружаю новые строки Код: javascript 1.
4) произвел новую инициализацию объекта DataTable: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
Она вроде как про инициализировалась с новыми данными, но старые данные тоже остались. Теперь 2 фильтра с новыми и старыми данными и сортировщик не понятно как работает ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 09:05 |
|
Как перезапустить JS скрипт для таблицы table из библиотеки после обновления tbody таблицы
|
|||
---|---|---|---|
#18+
krvsa Vlad__i__mir , выскажу предположение... Возможно все дело в асинхронности обновления твоего тбоди. Попробуй свою функцию вызвать с некой задержкой (в качестве эксперимента). Vlad__i__mir Вызываю её после обновления tbody: Код: javascript 1. 2. 3. 4. 5. 6. 7.
Вот так Код: javascript 1. 2. 3. 4.
Тут что-то с самой библиотекой по ходу связано. Я АПИ её почитал, сделал как там описано, но теперь у меня данные и старые и новые в фильтрах. Что с этим делать не понятно ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 09:08 |
|
|
start [/forum/topic.php?fid=22&msg=40088091&tid=1443205]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 259ms |
total: | 403ms |
0 / 0 |