我正在构建一个灯箱,并且遇到了以下fadeIn函数与fadeOut同时触发而不是之后触发的问题。
为什么updateImage.call(this)
与fadeOut
同时开火?考虑到它被作为回调放在后面,它是不是应该开火?
function updateImage() {
activeImage = overlayImagesBox.find('.' + this.className);
activeImage.fadeIn('slow').addClass('active-image');
}
imageLinks.on('click', function (e) {
e.preventDefault();
if (!activeImage) {
updateImage.call(this);
} else {
activeImage.removeClass('active-image').fadeOut('slow', updateImage.call(this));
activeImage = null;
}
});
答案 0 :(得分:0)
正如@blex在评论中提到的那样,正确的答案就是将函数作为回调传递而不是执行它。谢谢大家的帮助。