Почему не работает содержимое, загруженное методом load()?

Код работает, при простой вставке содержимого в контейнер (div id="player_icons").
Код не работает при загрузке содержимого в контейнер (div id="player_icons") методом load().

При загрузке содержимого в контейнер, не работают все события/функции, связанные с id="user_new_image" class="arcticmodal-close". А при простой вставке в код (ctrl+v) - всё работает.
Почему так происходит и как исправить?

В исходном коде комментариев нет. Добавил тут для наглядности.
Часть кода.
<!-- Ссылка. Открывает модальное окно, загружает в него (div id="player_icons") картинки -->
<a onclick="$('#user_change_image_window').arcticmodal(); load_player_icons();">Открыть окно с картинками</a>

<!-- Модальное окно, с картинками. Они будут загружены в контейнер div id="player_icons" -->
<div style="display:none;">
<div class="box-modal" id="user_change_image_window">
<div id="player_icons">
</div>
</div>
</div>

<!-- Функция, загружающая картинки (код) из файла 'player_icons.html. Работает и загружает.-->
<script>
function load_player_icons() {$('#player_icons').load('player_icons.html');};
</script>


Файл 'player_icons.html
<img src="01.png" id="user_new_image" class="arcticmodal-close">
<img src="02.png" id="user_new_image" class="arcticmodal-close">
  • Вопрос задан
  • 410 просмотров
Пригласить эксперта
Ответы на вопрос 3
Bellicus
@Bellicus
И швец, и жнец, и на дуде игрец.
Вешайте события через $('body').on(event, elem, callback);
Ответ написан
@Dmitriy975
Cобытия/функции, связанные с id="user_new_image" не работают, потому что событий на этих элементах нет. Т.к. на момент когда события вешались этих элементов не было. Могу предложить вешать события на эти элементы после того как вы подгрузите их.
Ответ написан
PretorDH
@PretorDH
HTML5, CSS3, PHP, JS - люблю в чистом виде.
ajax.load( {url} ) - только подгружает html, js при этом не выполняется. Связано это с безобасностью.

Для загрузки скриптов используй $.getScript().

Смотри инструкцию

id не могут быть одинаковые!!!
<img src="01.png" id="user_new_image1" class="user_new_image arcticmodal-close">
<img src="02.png" id="user_new_image2" class="user_new_image arcticmodal-close">


А по событиям пробуй вешать делегированные:
$('#user_change_image_window').on('click','.user_new_image',function() { ... });
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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