Javascript 如何在Rails中自动关闭引导警报?

Javascript 如何在Rails中自动关闭引导警报?,javascript,jquery,ruby-on-rails,twitter-bootstrap,ruby-on-rails-4,Javascript,Jquery,Ruby On Rails,Twitter Bootstrap,Ruby On Rails 4,因此,我有一个应用程序使用引导和它的警报,当你登录,注销等 我很难让这个弹出窗口在5秒内自动关闭,我用来设置警报框样式的类是“.alert”和“.alert info” 我已尝试将以下代码添加到application.js: window.setTimeout(function() { $(".alert alert-info").fadeTo(500, 0).slideUp(500, function(){ $(this).remove(); }); }, 5

因此,我有一个应用程序使用引导和它的警报,当你登录,注销等

我很难让这个弹出窗口在5秒内自动关闭,我用来设置警报框样式的类是“.alert”和“.alert info”

我已尝试将以下代码添加到application.js:

window.setTimeout(function() {
    $(".alert alert-info").fadeTo(500, 0).slideUp(500, function(){
        $(this).remove(); 
    });
}, 5000);
除了在application.html.erb中的脚本标记中添加它之外

 <script>
  window.setTimeout(function() {
    $(".alert alert-info").fadeTo(500, 0).slideUp(500, function(){
        $(this).remove(); 
    });
}, 5000);
    </script>

setTimeout(函数(){
$(“.alert-alert-info”).fadeTo(500,0).slideUp(500,function(){
$(this.remove();
});
}, 5000);
但它似乎仍然没有自动关闭,我做错了什么

谢谢

调用
setTimeout()
方法后,该方法只运行一次。按原样,javascript将在加载到DOM中时执行,而不是在弹出框出现时执行。您应该将代码添加到显示弹出窗口的同一函数中,以便在显示弹出窗口5秒后运行该函数。另外,如果要选择同时使用alert和alert info类设置样式的元素,jQuery选择器应该是
$(“.alert.alert info”)
。您应该只将js放在一个地方,不要在多个文件中重复相同的代码。这是不必要的,会导致意想不到的行为。您的最终代码应该如下所示:

setTimeout(function(){
    $(".alert.alert-info").fadeTo(500,0,function(){
        $(this).remove()
        })
    },5000)
}    
请记住将其放在代码中,以便在显示框时运行,而不是在加载页面时运行。如果需要自定义动画,请查看
animate()
方法: