Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Проблемы с div обновлённым через (#id).load (https://javascript.ru/forum/jquery/36059-problemy-s-div-obnovljonnym-cherez-id-load.html)

erlcat 02.03.2013 22:27

Проблемы с div обновлённым через (#id).load
 
Всем доброго времени суток.

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

Имеется на страничке div, который требуется обновлять по клику на кнопку\ссылку, а именно - подгружать в него содержимое файла (page_content.php, например).

Реализую это так:
<a href="#" onclick="$('#content').load('content_variant/bd_tp.php');">


Соответственно, содержимое div c id=content действительно обновляется, однако для него как бы не существует следующая строка:
<script type="text/javascript" src="js/global.js"></script>
, которая расположена в начале страницы (корневой), содержащей этот div.

Если прописать
<script type="text/javascript" src="js/global.js"></script>
непосредственно и в файле bd_tp.php (а его мы подгружаем в div), то в самом div всё работает как надо... но вот для элементов, расположенных вне этого div на корневой странице, все обработчики событий начинают выполняться два раза.

Как загрузить в div содержимое файла (результат выполнения php-скрипта) так, чтобы для нового содержимого также работало то, что определяет <script type="text/javascript" src="js/global.js"></script>

Deff 02.03.2013 22:39

Цитата:

Сообщение от erlcat
что определяет <script type="text/javascript" src="js/global.js"></script>

Ну Вариант в лоб - после каждой подгрузки, заменять src= в скрипте , а по уму заменить в скрипте обработку по событиям на делегирование событий

erlcat 02.03.2013 23:19

Deff, спасибо за ответ.

Проблема в том, что в подгружаемом содержимом div'a нет скриптов. Вообще нет. Нечего заменять.
Там есть <td><tr>... определённых классов, стилей... Я полный чайник в html,css и javaScript, но понимаю так: при загрузке первоначальной страницы, пробегаемся по всем элементам определённых классов и навешиваем на них определённые скрипты\обработчики. Соответственно, при обновлении содержимого div, для него, содержимого, этот пробег не осуществляется.

А можно подробнее про первый вариант, с src?

Deff 02.03.2013 23:25

Цитата:

Сообщение от erlcat
Проблема в том, что в подгружаемом содержимом div'a нет скриптов. Вообще нет. Нечего заменять.

<script type="text/javascript" src="js/global.js"></script>
Заменять src в подгружаемом скрипте, тогда скрипт перезапускается
Поскольку кеширование, то перезапуск скрипта идёт без повторной подгрузки

danik.js 03.03.2013 03:41

Deff, так ведь это аналогично этому:
Цитата:

Сообщение от erlcat
Если прописать
<script type="text/javascript" src="js/global.js"></script>
непосредственно и в файле bd_tp.php (а его мы подгружаем в div), то в самом div всё работает как надо... но вот для элементов, расположенных вне этого div на корневой странице, все обработчики событий начинают выполняться два раза.

Так что не вариант.

erlcat, вам однозначно придется модифицировать файл global.js, он был не расчитан на ajax-подгрузку.


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