jQuery: используйте плагин на странице, загруженной через AJAX - PullRequest
0 голосов
/ 08 сентября 2011

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

Однако одна из страницЯ хочу, чтобы у меня было слайд-шоу.После успешного вызова и появления страницы плагин не работает.

Нужно ли повторно инициализировать плагины, которые я хочу использовать на динамически загружаемой странице?

Я не могу показать какой-либо код прямо сейчас, но теоретически, что будет лучше, если использовать плагины и повторно инициализировать код JS на динамических страницах?

Обычно все мои скрипты хранятся в одном файле jquery.scripts.js в заголовке главной страницы индекса.Нужно ли размещать эти сценарии на отдельных страницах?

Большое спасибо!Майкл.

$('#logo a').click(function() {

    $.ajax({

        type: "POST",
        url: "./ajax/test.html",
        data: '', 
        dataType: "html",
        success: function(data){

            if(parseInt(data)!=0) {

                $('#cycle').html(data);

                $("#cycle").cycle({

                    fx:         'fade',
                    //easing:   'easeOutExpo',
                    speed:      3000, 
                    //timeout:  0, 
                    //next:     '#cycle-next', 
                    //prev:     '#cycle-prev'

                });

            }

        }

    });

    return false;

});

Этот код выполняет вызов, загружает страницу, но не повторно запускает плагин.Это ничего не делает, и нет ошибок.Weird.

Ответы [ 2 ]

1 голос
/ 08 сентября 2011

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

success:function(data){
    if(parseInt(data)!=0) {
        $('#cycle').html(data);
        $('#cycle').cycle('destroy');
        $("#cycle").cycle({
            fx:'fade',
            //easing:'easeOutExpo',
            speed:3000,
            //timeout:0,
            //next:'#cycle-next',
            //prev:'#cycle-prev'
        });
    }
}
1 голос
/ 08 сентября 2011

Что вам нужно сделать, это после того, как вы извлекли страницу ajax, вставили ее на свой веб-сайт, и когда это было сделано, вы можете инициализировать слайд-шоу.

, поэтому в основном:

$.ajax({
    url: 'myurl',
    success: function (data) {
        $('#target').html(data);
        $('#target .slideshow').slideshow();
    }
});

<div id="#target">
    <div class="slideshow"></div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...