JQuery如何防止两次称为过渡期事件



closeContent() fucntion的某个问题,我无法确定如何防止每次单击.show-content

过渡本基本上不应踢两次。

任何帮助将不胜感激。

$('.show-content').on('click', function (e) {
  e.preventDefault();
  openContent();
});
$('#load-content').on('click','.prev',function (e){
  e.preventDefault();
  closeContent(this);
});
function openContent(){  
    $('#load-content').load('../views/product-page.html');
    $('.container').addClass('loaded');
    $("#load-content").on("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function () {
    $(this).addClass('animate');
    var body = $("body,html");
    body.animate({
      scrollTop: 0
    }, 800);
});
}
function closeContent(ele){
    var Loaded = !$(ele).closest('.container').hasClass('loaded');
    if (!Loaded) {
        $('.animate').removeClass('animate');
        $("#load-content").on("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function () {
            $('.loaded').removeClass('loaded');
            $('#show-content').remove();
        });
    }           
}

您不应该嵌套事件...无论如何,作为一个简单的修复,使用one()

$("#load-content").one("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function () {...});

我不确定您想要什么,但是通过它的外观,您正在通过e.preventDefault();停止任何默认操作,并且由于它没有解决您的问题从冒泡DOM树,以防止任何父母通知事件,您可以使用event.stopPropagation()在此处检查文档。希望回答您的问题

相关内容

  • 没有找到相关文章

最新更新