成功进行ajax调用后,我会显示一个告诉成功状态的元素。我需要暂时显示它并在说10秒后隐藏它。
我有一个段落元素,其中类设置为在加载<p class="response hide" >Successfully Updated!</p>
下面的代码似乎不起作用,因为元素在显示之后不会隐藏,只需添加&#39; show&#39;类
function UpdateChangeRequest() {
$.ajax({
url: '/Request/UpdateRequest',
cache: false,
data: $('form[id="RequestForm"]').serialize(),
type: 'POST',
success: function (data) {
$('.divPartial').html(data);
$('.response').addClass('show').removeClass('hide');
setTimeout(function () {
$('.response').fadeOut('fast');
}, 1000);
}
});
}
有什么想法吗?感谢
答案 0 :(得分:4)
您应该尝试在success
回调中制作以下内容:
$(function(){
$('.response').hide();
$('#fake').click(function(){
$('.response').show();
setTimeout(function () { $('.response').fadeOut('fast'); }, 1000);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="response" >Successfully Updated!</p>
<input type="button" value="click" id="fake"/>
<强>更新强>
由于您更新了帖子,我可能会更具体:
function UpdateChangeRequest() {
$.ajax({
url: '/Request/UpdateRequest',
cache: false,
data: $('form[id="RequestForm"]').serialize(),
type: 'POST',
success: function (data) {
$('.divPartial').html(data);
// Show the success message
$('.response').show();
// Define a timeout after which fade out the success message.
setTimeout(function () { $('.response').fadeOut('fast'); }, 1000);
}
});
}
答案 1 :(得分:0)
简单的说法:
$(obj).show().delay(10000).hide();
答案 2 :(得分:0)
找到你的元素,显示它,添加10秒的延迟,最后隐藏它。你可以链接所有这些效果/事件:
$('.response').show().delay(10000).hide();
答案 3 :(得分:0)
您可以使用回调。
$(".response").fadeIn("slow","swing", function()
{
(".response").delay(10000).fadeOut("slow");
});
答案 4 :(得分:0)
您的代码应该像我在评论中提到的那样工作。我已将它们放在codepen中,只需最少的更改
HTML:
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
<p class="response hide" >Successfully Updated!</p>
<!--- response msg is hidden by default --->
的CSS:
.hide{
display: none;
}
JS:
var millisecondsToWait = 1000;
$(document).ready(function(){
//$('.response').addClass('show').removeClass('hide');
$('.response').show();
setTimeout(function () {
$('.response').fadeOut('fast');
}, millisecondsToWait);
});
codepen示例:http://codepen.io/anon/pen/bNrGwW
答案 5 :(得分:-1)
试试这个: -
$('.response').show().delay(10000).fadeOut('slow');