jquery 如何防止 transitionend 事件被调用两次

标签 jquery css load

closeContent() function 有一些问题,我不知道如何在每次单击 .show-content< 时阻止它运行.

transitionend 基本上不应该踢两次。

任何帮助将不胜感激。

$('.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 () {...});

关于jquery 如何防止 transitionend 事件被调用两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22325046/

相关文章:

jquery - 页面完成加载 AJAX 内容后运行 jQuery 代码

javascript - 使用 JQuery 进行跨域请求

javascript - 如何创建 key :value object from several HTML inputs

javascript - 为什么我难以通过 href ="element"滚动?

php - Jquery 手机 : New Ajax Loaded Page not Loading new JS

jquery - 悬停时发光的文字

jquery - 如何为文本区域标签添加背景文本?

javascript - 阻止图像加载

javascript - 试图找出一种调整背景图像大小并包含具有窗口宽度比例的元素的方法

android - 如何为所有设备加载动画?