partyzanx
@partyzanx

Как заставить работать скрипты на подгруженный контент?

На странице wikihsk.com/publ/chinese-grammar/hsk-3-intermediat... есть блок:
<div class="fullwidth" id="container" style="min-height: 100px;">
</div>


В него посредством этого jQuery кода заливается содержимое
<script type="text/javascript">
$( "#container" ).load( "wikihsk.com/test/new_3.html" );
</script>


Проблема в том, что у гостей (незалогиненных пользователей) даже не работают якорные ссылки внутри контента. Например, ссылка wikihsk.com/publ/chinese-grammar/hsk-3-intermediat... должна осуществлять переход на якорь #See_also внутри подгружаемого контента.
Первый раз она может сработать, потом нет. Попробуйте пару раз загрузить.

Второе, на подгружаемый контент не распространяется действие скриптов сайта, например, вот такой скрипт.
5a135a7ba4ad1122537167.png
Я не буду решать данную проблему действием onclick, потому что она решит только проблему скрипта, но не якоря.
Внутрь html заливать скрипт тоже не подойдёт, потому что на один сайт должен быть один скрипт.

Третье, если пользователь залогинился на сайте, то и якоря и скрипты на подгружаемый контент работают на 100% на всех устройствах.

На одном форуме подсказали, что видимо у незалогиненных пользователей вешает обработчик на теги с классом data (к примеру) и он работает, а из файла file.php появляется еще какойто тэг с классом data, то на подгруженную фигню оно не будет реагировать и для этого нужно еще раз повесить обработчик на класс data


Хотя странно почему не работают якоря на загружаемый контент
  • Вопрос задан
  • 462 просмотра
Пригласить эксперта
Ответы на вопрос 1
@DenisDangerous
Насчет якорей хз почему не работают, а чтобы события типа OnClick и тп работали с динамическими элементами нужно так делать...

К примеру есть некая обертка, которая изначально присутствует на странице имеет ид #container, в которую и загружается контент, и там есть некая кнопка c классом .button. Так вот событие нужно писать так:
$('#container').on('click','.button',function(){
...
});

тогда клик по кнопке будет срабатывать
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы