конфликт между OWL каруселью syn c и Ajax. Только для третьего слайда - PullRequest
0 голосов
/ 15 марта 2020

Я использую совую карусель 2.3.4 и метод syn c, чтобы использовать кнопку для перемещения карусели. Каждый слайд содержит запись l oop WP (заголовок, изображение и категорию). Над ползунком находятся мои кнопки (категория сообщений), соответствующие syn c 2. Если я нажимаю на сообщение, оно вызывается в ajax, и появляется окно, отображающее полный контент.

проблема только на третьем слайде: если я использую mousedrag для go на третьем слайде и нажимаю на любые сообщения, все рабочие штрафы сообщение называется с ajax. Если я нажимаю на третью кнопку (syn c 2, чтобы отобразить третий слайд) и нажимаю на любые сообщения, они не вызываются ajax и открывают новую вкладку браузера.

Здесь моя ajax просьба позвонить по почте:

(function($) {
$(document).ready(function() {
$('.post-link').click(function(event) {
      var post_id = $(this).attr("id");
      event.preventDefault();
      $.post(
            ajaxurl,
            {'action': 'more_content','the_ID': post_id},
            function( data ) { $('#window-post').html(data); }
      );
 });$('.win-post').on('click','.im-x-mark',function(){
    $("#window-post").html("");
});
});
})(jQuery);

вот код OWL карусели c код:

var sl = jQuery.noConflict();
sl(document).ready(function() {
var sync1 = sl("#slide-appareil");
var sync2 = sl("#nav-appareil");
var slidesPerPage = 3; //globaly define number of elements per page
var syncedSecondary = true;

sync1.owlCarousel({
    items: 1,
    slideSpeed: 2000,
    dots:false,
    nav:false,

    loop : true
}).on('changed.owl.carousel', syncPosition);

sync2
    .on('initialized.owl.carousel', function() {
        sync2.find(".owl-item").eq(0).addClass("current");
    })
    .owlCarousel({
        items: slidesPerPage,
        dots:false,
        smartSpeed: 200,
        slideSpeed: 500,
        slideBy: slidesPerPage, 
        responsiveRefreshRate: 100,

        touchDrag  : false
    }).on('changed.owl.carousel', syncPosition2);

function syncPosition(el) {
    //if you set loop to false, you have to restore this next line
    //var current = el.item.index;

    //if you disable loop you have to comment this block
    var count = el.item.count - 1;
    var current = Math.round(el.item.index - (el.item.count / 2) - .5);

    if (current < 0) {
        current = count;
    }
    if (current > count) {
        current = 0;
    }

    //end block

    sync2
        .find(".owl-item")
        .removeClass("current")
        .eq(current)
        .addClass("current");
    var onscreen = sync2.find('.owl-item.active').length - 1;
    var start = sync2.find('.owl-item.active').first().index();
    var end = sync2.find('.owl-item.active').last().index();

    if (current > end) {
        sync2.data('owl.carousel').to(current, 100, true);
    }
    if (current < start) {
        sync2.data('owl.carousel').to(current - onscreen, 100, true);
    }
}

function syncPosition2(el) {
    if (syncedSecondary) {
        var number = el.item.index;
        sync1.data('owl.carousel').to(number, 100, true);
    }
}

sync2.on("click", ".owl-item", function(e) {
    e.preventDefault();
    var number = sl(this).index();
    sync1.data('owl.carousel').to(number, 300, true);
});
});
...