Javascript 在JQuery运行时显示并隐藏引导警报?

Javascript 在JQuery运行时显示并隐藏引导警报?,javascript,jquery,bootstrap-4,jquery-deferred,Javascript,Jquery,Bootstrap 4,Jquery Deferred,当用户在我的页面上更改下拉列表时,我有一些JQuery可以“填充”。我想将“show”类添加到我的引导警报中,然后在“stuff”完成后将其删除。在我当前的尝试中,我使用了一个Deferred.done()方法,但它似乎没有按照我的意愿工作。addClass和removeClass函数都是在DOM刷新之前运行的,因此不会出现警报。有什么建议吗 代码: 也许你可以试试这个: //设置函数将removeClass()包装到 //setTimeout()函数 const removeShowClas

当用户在我的页面上更改下拉列表时,我有一些JQuery可以“填充”。我想将“show”类添加到我的引导警报中,然后在“stuff”完成后将其删除。在我当前的尝试中,我使用了一个
Deferred.done()
方法,但它似乎没有按照我的意愿工作。
addClass
removeClass
函数都是在DOM刷新之前运行的,因此不会出现警报。有什么建议吗

代码:


也许你可以试试这个:

//设置函数将removeClass()包装到
//setTimeout()函数
const removeShowClass=()=>{
setTimeout(函数(){
jQuery('#alert').removeClass('show'))
}, 2000)
}
//模拟“快速”过程
jQuery('#quick')。on('click',函数(e){
jQuery(“#警报”).addClass('show')
removeShowClass()
})
//模拟“缓慢”的过程
jQuery(“#slow”).on('click',函数(e){
jQuery(“#警报”).addClass('show')
setTimeout(函数(){
removeShowClass()
}, 2000)
})
。警报:未(.show){
可见性:隐藏;
}
.alert.show{
能见度:可见;
}

警觉的


快速过程警报


慢流程警报
什么是“东西”?如果它是一个异步函数,那么你应该重新构造你的代码。它是对d3.js函数的调用,它清空SVG,然后重新运行我的渲染函数。老实说,我不太熟悉什么异步函数是过去的表面级知识函数真的完成得那么快吗?我的意思是:您的警报是否有时间显示(如果它能按您希望的方式工作)?
$(".my-dropdown").change(function() {
    var show_alert = function() {
        var r = $.Deferred();
        $('#update-alert').addClass("show");
        return r;
    }

    var updategraph = function() {
        "stuff"
        $('#update-alert').removeClass("show");
    }

    show_alert().done(updategraph());
})