Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Выполнение JS в страницах подгруженных через ajax (https://javascript.ru/forum/jquery/57189-vypolnenie-js-v-stranicakh-podgruzhennykh-cherez-ajax.html)

Mikhail1989 23.07.2015 12:08

Выполнение JS в страницах подгруженных через ajax
 
Подскажите как можно сделать. Есть такой скрипт
$(document).ready(function(){
    
                $('a').click(function(e){
                    e.preventDefault();
                    var link = $(this).attr('href');
                    $.ajax({
                        type:'post',
                        url: link,
                        success: function(mes){
                            $('#content').html(mes);
                            
                        }
                    })
                })
            })

Который находится на странице и подгружает в определенный блок различные html страницы. Как можно сделать чтобы этот скрипт работал также и в подгружаемом блоке?:help:

jasper-blondin 23.07.2015 12:15

Добавить данный скрипт в подгружаемые страницы. Иначе исходный скрипт не увидит искомые объекты в подгруженной странице.

jasper-blondin 23.07.2015 12:18

А вообще интересная задача. Получается, нужно, чтобы в блоке #content ссылки также открывали страницы в этом же блоке #content. Похоже на обычный iframe.

Mikhail1989 23.07.2015 12:27

Цитата:

Сообщение от jasper-blondin
Добавить данный скрипт в подгружаемые страницы. Иначе исходный скрипт не увидит искомые объекты в подгруженной странице.

Добавлять так пробовал. Но штука заключается в том, что в этом случае количество запросов увеличиваются в прогрессии при каждом переходе.

рони 23.07.2015 12:30

Mikhail1989,
ставить клик на документ а не на ссылку
$(document).on('click', 'a' , function(e){})

Mikhail1989 23.07.2015 13:18

Цитата:

Сообщение от рони (Сообщение 381087)
Mikhail1989,
ставить клик на документ а не на ссылку
$(document).on('click', 'a' , function(e){})

огромное Вам спасибо за помощь, мучился уже не первый день.

Извините, а не можете ли Вы подсказать как в ajax подгружать выполнение скриптов. Есть подгружаемый контент в котором элементы должны обрабатываться скриптами, но этого не происходит, так как скрипты загруженные при начальной загрузке сайта, не распространяются на контент подгруженный через ajax.

рони 25.07.2015 17:07

Цитата:

Сообщение от Mikhail1989
загруженные при начальной загрузке сайта, не распространяются на контент

инициализировать контент по новой после загрузки.

laimas 26.07.2015 07:30

Цитата:

Сообщение от Mikhail1989
как в ajax подгружать выполнение скриптов

Возвращается некий html, в котором есть и JS выполняемый по загрузке контента:

<?
if($_POST['a']) exit(
    '<div id=as></div>
    <script> 
        $(function() {
            $("#as").text("Опаньки!").css({color:"#f00"})
        });
    </script>'
)
?>
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js" type="text/javascript"></script>
<script> 
$(function() {
    $.post(location, {a:1}, function(d) {
        $('body').append(d)
    }, 'html')
});
</script>     
</head> 

<body>
</body> 
</html>

Mikhail1989 27.07.2015 10:51

Цитата:

Сообщение от рони (Сообщение 381485)
инициализировать контент по новой после загрузки.

извините за, может быть, глупый вопрос, но как инициализировать контент по новой?:help:

рони 27.07.2015 10:57

Mikhail1989,
а как до того , что и чем инициализировали ? у хороших плагинов есть refresh


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