javascript - 将 jQuery 代码设置为在函数完成后触发

标签 javascript jquery

我有以下功能(我从中间删除了对我的问题不重要的代码):

function shadowBoxRefresh(){
    $("#sb-nav-next, #sb-nav-previous").click(function(){
            $('#sb-container').addClass("visibility_stay");
            $('#sb-overlay').addClass("opacity_stay");
            Shadowbox.close();
            Shadowbox.clearCache();
            shadowBoxSetup();
            setTimeout("Shadowbox.open(c)", 400)
            $('#sb-container').removeClass("visibility_stay");
            $('#sb-overlay').removeClass("opacity_stay");
        }
    });
}

我的问题是,我需要这部分:

$('#sb-container').removeClass("visibility_stay");
$('#sb-overlay').removeClass("opacity_stay");

在函数的其余部分完成后触发。我想知道回调是否可以完成这项工作,但我对回调的了解还不够深,不知道如何实现它。

非常感谢您的帮助。

最佳答案

如果“在函数的其余部分之后”是指 0.4 秒后发生的“在 Shadowbox.open(c) 之后”,那么请执行以下操作:

function shadowBoxRefresh(){
    $("#sb-nav-next, #sb-nav-previous").click(function(){
            $('#sb-container').addClass("visibility_stay");
            $('#sb-overlay').addClass("opacity_stay");
            Shadowbox.close();
            Shadowbox.clearCache();
            shadowBoxSetup();
            setTimeout(function () {
                Shadowbox.open(c);
                $('#sb-container').removeClass("visibility_stay");
                $('#sb-overlay').removeClass("opacity_stay");
            }, 400);
        }
    });
}

关于javascript - 将 jQuery 代码设置为在函数完成后触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7382497/

相关文章:

javascript - 生成器是否同时返回迭代器和可迭代对象?

javascript - 单击 div 的监听器但不是链接

javascript - 如何使导航菜单滚动?

JQuery 使用 .on() 而不使用选择器

javascript - 使用 grunt-replace 替换字符串

javascript - 尝试更改表单中未选择对象的边框颜色

jquery - 为什么 addClass 不优先并且出现边框?

jQuery "show"直到元素没有内联样式

javascript - Maps LatLng 不读取我的数据

javascript - 如何将一个很长的列变成多个较短的列?