我试图通过在单击事件中调用实现 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/