JS:
$.ajax({
url: url,
method: 'POST',
data: data,
}).done(id => {
this._handleMsg('data saved.');
const newUrl = dutils.urls.resolve( 'test', { test_id: id } );
window.location.replace(newUrl);
}).fail(( jqXHR, textStatus, errormsg ) => {
this._handleError('Sorry. Report not saved. Reason:' + errormsg); // eslint-disable-line no-alert
});
_handleMsg(msg) {
if (msg) {
$('#header .form-group').addClass('has-msg');
$('.report-error').html(msg).delay(200000).fadeIn(500000);
} else {
$('#header .form-group').removeClass('has-msg');
}
},
SCSS:
.report-error{
visibility: hidden;
text-align: center;
color: red;
}
.has-msg, .has-msg:focus, .has-msg:hover{
input {
border-color: #843534;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;
box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;
background-color: #ffffff;
outline: 0;
}
label, .report-error{
visibility: visible;
color: green;
font-size:30px;
}
}
我需要显示消息“已保存数据”。持续2秒,然后重定向到另一个网址。但似乎 $('。report-error')。html(msg).delay(200000).fadeIn(500000); 不起作用。
有什么想法吗?感谢
更新
203 this._handleMsg('data saved.');
204 setTimeout(()=>{
205 const newUrl = dutils.urls.resolve( 'test', { test_id: id } );
206 window.location.replace(newUrl);
207 }, 2000);
答案 0 :(得分:0)
尝试JavaScript的超时:setTimeout()
(look here for more infos)
这是a fiddle using setTimeout并调用带参数的函数。
代码本身如下:
function alertMessage(firstMessage, secondMessage) {
alert(firstMessage + ' ' + secondMessage);
}
setTimeout(
alertMessage, // name of the function to be called after the delay
1000, // the size of the delay in ms
'Hello world!', // the first parameter to be parsed to the called function
'You rock!' // the second parameter to be parsed to the called function
);
我希望这会有所帮助。
答案 1 :(得分:0)
$.ajax({
url: url,
method: 'POST',
data: data,
}).done(id => {
this._handleMsg('data saved.');
const newUrl = dutils.urls.resolve( 'test', { test_id: id } );
//below function will call after 2s that solve your purpose
setTimeout(function () { window.location.replace(newUrl); }, 2000);
}).fail(( jqXHR, textStatus, errormsg ) => {
this._handleError('Sorry. Report not saved. Reason:' + errormsg); // eslint-disable-line no-alert
});