所以我有一个使用bootstrap的应用程序,当你登录,注销等时它会发出警报。
我无法自动关闭此弹出窗口,在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>
但它似乎还没有自动关闭,我做错了什么?
谢谢!
答案 0 :(得分:0)
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()
方法:http://api.jquery.com/animate/