gpt4 book ai didi

javascript - 使用 jquery.animate 多次调用后动画延迟

转载 作者:行者123 更新时间:2023-11-29 14:50:36 28 4
gpt4 key购买 nike

我试图通过在单击事件中调用实现 jquery.animate 的函数来在单击 div 后在整个页面上显示覆盖几次点击后发生了什么,比如尝试 4 或 5 次我开始注意到在点击 div 和叠加层显示自身之间存在延迟,并且每次点击后这种延迟都会增加

详细代码在jsfiddle这是javascript代码

function initTemplateEditor(params) {
if (typeof params === "undefined") {
throw new Error("can't init the editor without params!");
}

var
openEditor = function () {
$(params.templateEditor).animate({
opacity: 1
}, {
duration: 350,
start: function () {
$(params.templateEditor).css({
"display": "block",
"width": $(window).width() - 10,
"height": $(window).height() - 10
});
}
});
},
closeEditor = function () {
$(params.templateEditor).animate({
opacity: 0
}, 350, function () {
$(this).css("display", "none");
});
};
$("#editorClose").click(function () {
closeEditor();
});
openEditor();
}

$(".template-box").click(function () {
initTemplateEditor({
templateEditor: "#templateEditor",
template: this
});
});

最佳答案

每次调用 initTemplateEditor 时,您都会使用此函数添加到 editorClose 点击链:

$("#editorClose").click(function () {
closeEditor();
});

如果您在函数内添加一个alert,您会看到它第一次被调用一次,第二次被调用两次,依此类推。

click 函数之前添加这行代码,它应该可以解决您的问题:

$("#editorClose").unbind("click");

关于javascript - 使用 jquery.animate 多次调用后动画延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26428517/

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