jQuery не работает в .load ()

0

У меня возникли проблемы с работой jQuery в функции.load().

Скрипт загружает содержимое указанных страниц в div #project, а затем инициализирует flexslider, который работает нормально.

Проблема в том, что я пытаюсь добавить стрелки для перехода к следующему/предыдущему сообщению, но, конечно, если я положу функцию.load для стрелок вне первой функции.load, код не будет работать.

Я попытался включить их в функцию.load ниже, и он отлично работал для первого сообщения. После этого все jQuery прекратили инициализацию (flexslider и даже функция щелчка стрелки влево/вправо).

Мне нравится делать неограниченный цикл.load() или что-то еще. Надеюсь, у меня есть смысл и, надеюсь, кто-то может помочь. Вот что я имею, что работает, минус стрелы.

Подводя итог этому вопросу, есть ли способ заставить jQuery работать в функции.load() без повторной инициализации внутри.load()?

jQuery('.single-item, .portfolio-images article').click(function() {
    var geturl = window.location;
    var next_project = jQuery(this).attr('data-projectid');
    jQuery('html, body').animate({ scrollTop: 0 }, 500);
    jQuery('#project').slideUp('slow');
    jQuery('#project').load(geturl + "?page_id=" + next_project + " .project", function() { 
        if (jQuery(this).hasClass('opened')) {
            jQuery(this).slideDown(600);
            jQuery('.flexslider').fadeIn();
        } else {
            jQuery(this).slideDown(300);
            jQuery('.flexslider').fadeIn();
        }
        jQuery('.grid').click(function() {
            jQuery('#project').slideUp(500);
        });
        // Initialize Scripts
        jQuery('.flexslider').flexslider({
            animation: "slide",
            smoothHeight: true,
            startAt: 0,
        });
    });
    }).addClass('opened');
    return false;
Теги:

2 ответа

0
Лучший ответ

Поскольку содержимое загружается динамически, вам может потребоваться использовать метод on() с селектором, то есть что-то похожее на это: $ (document).on(EVENT, SELECTOR, function() {});

Обработчик событий JQuery не работает с динамическим контентом

также см. http://learn.jquery.com/events/event-delegation/

  • 0
    Огромное спасибо, что исправили это!
0

Проблема с событиями, вы можете добавить события перед загрузкой.

Как:

$(document)
    .on("click", ".your-elements", function ()
    {
        alert("code here");
    });

То же самое и для подключений плагинов, если вы не можете вызвать конструктор плагинов перед загрузкой, возможно, вам нужно вызвать функцию "destroy" и снова создать плагин.

См. Эту скрипку, например

Ещё вопросы

Сообщество Overcoder
Наверх
Меню