Javascript jQuery-如何在给定延迟的情况下从元素中删除类?
当用户更新数据库中的记录时,我将使用AJAX请求修改该记录。然后,我通过调用Javascript jQuery-如何在给定延迟的情况下从元素中删除类?,javascript,jquery,fadeout,Javascript,Jquery,Fadeout,当用户更新数据库中的记录时,我将使用AJAX请求修改该记录。然后,我通过调用addClass方法向呈现的div添加一个类。I添加到div的类(我们称该类为colored)只包含背景色指令(用于突出显示当前修改的记录) 到目前为止还不错 现在,我想在1秒后,用一个fadeOut效果删除这个类 我尝试过这些方法,但在这两种情况下,它不仅删除了类,而且删除了整个div $("#id1").fadeOut(1000, function() { $(this).removeClass('color
addClass
方法向呈现的div
添加一个类。I添加到div
的类(我们称该类为colored
)只包含背景色
指令(用于突出显示当前修改的记录)
到目前为止还不错
现在,我想在1秒后,用一个fadeOut
效果删除这个类
我尝试过这些方法,但在这两种情况下,它不仅删除了类,而且删除了整个div
$("#id1").fadeOut(1000, function() {
$(this).removeClass('colored');
});
或
为什么删除了
div而不是类
?实际上,div
得到一个显示:无代码>样式-我在控制台中看到了这一点。您可以使用如下设置超时功能:
setTimeout(
function(){
$("#id1").removeClass('updated_item');
}
,1000 //1 second
)
如果您想通过动画更改颜色,您可以在CSS中添加一个过渡样式,如下所示:
.myDiv{
background:red;
transition:background 1s;
-webkit-transition:background 1s;
}
.colored
{
background:blue;
}
您可以像这样使用setTimeout函数:
setTimeout(
function(){
$("#id1").removeClass('updated_item');
}
,1000 //1 second
)
如果您想通过动画更改颜色,您可以在CSS中添加一个过渡样式,如下所示:
.myDiv{
background:red;
transition:background 1s;
-webkit-transition:background 1s;
}
.colored
{
background:blue;
}
fadeOut
将淡出整个元素并将其隐藏在屏幕上。如果要淡出类的效果,可以使用(与常规jQuery不同,它接受持续时间和淡出效果)或。fadeOut
将淡出整个元素并将其隐藏在屏幕上。如果要淡出类的效果,可以使用(与常规jQuery不同,它接受持续时间和淡出效果)或。将淡出功能应用于div
本身,而不是应用于类:
//the div, will fadeout after 1000 ms and get the class removed
$("#id1").delay(1000).fadeOut().removeClass('updated_item');
如果要删除带有褪色效果的背景色
,则必须使用以下方法:
setTimeout(function() {
$('#id1').removeClass('updated_item');
}, 1000)
在css端,使用过渡
实现淡出
效果:
#id1 {
transition: background-color 0.5s ease;
}
.updated_item {
background-color: yellow;
}
您将淡出
功能应用于div
本身,而不是类:
//the div, will fadeout after 1000 ms and get the class removed
$("#id1").delay(1000).fadeOut().removeClass('updated_item');
如果要删除带有褪色效果的背景色
,则必须使用以下方法:
setTimeout(function() {
$('#id1').removeClass('updated_item');
}, 1000)
在css端,使用过渡
实现淡出
效果:
#id1 {
transition: background-color 0.5s ease;
}
.updated_item {
background-color: yellow;
}
我不知道我是否得到了,这是你想要的吗?
jQuery('.action')。单击(函数(){
jQuery(this.parent().addClass('highlight');
如果(确认('你确定吗?')){
jQuery(this).parent().fadeOut(1000,function()){
jQuery(this).addClass('remove').removeClass('highlight');
});
}否则{
jQuery(this.parent().removeClass('highlight');
}
});代码>
。突出显示{
背景色:红色;
}
#1
#2
我不知道我是否得到了它,这是你想要的吗?
jQuery('.action')。单击(函数(){
jQuery(this.parent().addClass('highlight');
如果(确认('你确定吗?')){
jQuery(this).parent().fadeOut(1000,function()){
jQuery(this).addClass('remove').removeClass('highlight');
});
}否则{
jQuery(this.parent().removeClass('highlight');
}
});代码>
。突出显示{
背景色:红色;
}
#1
#2
删除了整个div?来自DOM?不应该这样。@JeremyHolovacs是的,确实如此。如果您试图保留元素但将其隐藏,则可以使用fadeTo
。嗯,淡出隐藏元素。如果你只想改变背景颜色,那么你就想看看animate.css对于效果来说是很好的。不要在这么简单的任务中使用animate…那会删除整个div吗?来自DOM?不应该这样。@JeremyHolovacs是的,确实如此。如果您试图保留元素但将其隐藏,则可以使用fadeTo
。嗯,淡出隐藏元素。如果你只想改变背景颜色,那么你可以看看animate.css对于效果来说很好,不要在这么简单的任务中使用animate…这正是我需要的!谢谢亚历克fadeOut
不会对DOM隐藏元素,只是不会渲染它。要从DOM中删除它,您需要.remove()
它。谢谢@JeremyHolovacs,这正是我的意思-从屏幕上隐藏它*很高兴它成功了。这正是我需要的!谢谢亚历克fadeOut
不会对DOM隐藏元素,只是不会渲染它。要从DOM中删除它,您需要.remove()
它。谢谢@JeremyHolovacs,这正是我的意思-从屏幕上隐藏它*很高兴它成功了。