gpt4 book ai didi

javascript - 使用 jquery mouseover 在 javascript 中递归过多

转载 作者:行者123 更新时间:2023-11-30 18:55:50 25 4
gpt4 key购买 nike

我是一个JS新手。使用我在这里找到的一些代码来帮助我进行鼠标悬停缩放/旋转图像,但是现在当我尝试将它应用于多个对象时,我收到错误提示“太多递归”。在该函数不接受任何参数之前,它只是在 s_1 上并且运行良好。我很想为每个对象编写不同的代码,但这不是很好的编程习惯。

            var over = false;
$(function(){
$("#s_1").hover(function(){
over = true;
swing_left_anim("#s_1");
}, function(){
over = false;
});
$("#np_1").hover(function(){
over = true;
swing_left_anim("np_1");
}, function(){
over = false;
});
});

function swing_left_anim(obj){
$(obj).animate({
rotate: '0deg'
}, {
duration: 500
});
if (over) {
$(obj).animate({
rotate: '25deg'
}, 500, swing_right_anim(obj));

}
}

function swing_right_anim(obj){
$(obj).animate({
rotate: '-25deg'
}, 500, swing_left_anim(obj));
}

最佳答案

这是 jQuery 错误。每次调用 animate() 时,回调必须是一个单独的对象,因为 jQuery 正在复制函数(或对象,它取决于所选的 animate() 变体)的引用。更多详情:http://blog.stephenrushing.com/index.php/jquery/jqueryanimate-too-much-recursion-from-complete-callback/

关于javascript - 使用 jquery mouseover 在 javascript 中递归过多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2136588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com