当使用Jquery事件监听器时,使用Jquery.animate会减慢速度

Jquery .animate slows with use when using jquery event listeners

本文关键字:Jquery animate 使用 速度 事件 监听器      更新时间:2023-09-26

我正在构建一个混合移动应用程序,使用具有触摸支持的Jquery事件侦听器来创建交互,但我在事件侦听器调用使用.animate的函数时遇到了问题。第一次animate工作得很好,但第二次更慢,第三次甚至更慢。从日志中可以看出,每次调用函数时,事件侦听器似乎都会将对函数的调用乘以2。

我已经将问题缩小到事件侦听器,因为当在chrome-dev工具中手动调用该函数时,该函数可以完美地工作。我已经尝试过使用jquery .on.one事件侦听器。下面是我的代码,如果能得到一些建议就太好了。。。

HTML

<div id="closeIcon"></div>

和JS。。。

$('#closeIcon').one("tap", closeLogin);
function closeLogin(){
$('#userContainer').animate({'padding-top': '120px'}, 500);
$('#contentContainer').animate({'height': '682px'}, 500, function(){
    unselectUser();
    $('#loginContainer').empty();
    $('#loginContainer').css('visibility', "hidden");
});
}

试试这个:

$('#closeIcon').one("tap", closeLogin);
function closeLogin(e){
    e.stopImmediatePropagation();
    $('#userContainer').animate({'padding-top': '120px'}, 500);
    $('#contentContainer').animate({'height': '682px'}, 500, function(){
        unselectUser();
        $('#loginContainer').empty();
        $('#loginContainer').css('visibility', "hidden");
    });
}