У меня возникли проблемы с работой 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;
Поскольку содержимое загружается динамически, вам может потребоваться использовать метод on() с селектором, то есть что-то похожее на это: $ (document).on(EVENT, SELECTOR, function() {});
Обработчик событий JQuery не работает с динамическим контентом
Проблема с событиями, вы можете добавить события перед загрузкой.
Как:
$(document)
.on("click", ".your-elements", function ()
{
alert("code here");
});
То же самое и для подключений плагинов, если вы не можете вызвать конструктор плагинов перед загрузкой, возможно, вам нужно вызвать функцию "destroy" и снова создать плагин.
См. Эту скрипку, например