我使用函数App.loadTo在任何地方加载一些数据。在显示任何内容之前,我需要延迟(使用form-styler插件,重绘表单)。我试图setTimeout和setInterval的功能,但它们只运行一次,即调用App.loadTosetTimeOut/setInterval只运行一次
1)(PARAMS) - 延迟工作
2)具有相同PARAMS调用App.loadTo(PARAMS) - 延迟犯规工作
我试图
tmp = setInterval(function() {
console.log('I show all invisible!', params.where);
$(params.where).css({
'visibility': 'visible'
});
$('#preloader').remove();
clearInterval(tmp);
}, 110);
哪里我犯了一个错误,但没有成功以下?
App.loadTo = function loadTo(params) {
$.ajax({
url: '/' + params.controller + '/' + params.action + '',
type: 'POST',
dataType: 'json',
data: params.sentData,
success: function(server_answer, textStatus) {
if (server_answer.result == 'success') {
if (params.hasOwnProperty('parseHtml')) {
// Data parsing
var html = $(server_answer.html);
html = $(html).find(params.parseBlock);
} else {
var html = $(server_answer.html);
}
// Inserting data
$(params.where).empty().html(html).css({
'visibility': 'hidden'
}).before('<div id="preloader" style="width: 100%; background: url("i/preloader.gif") no-repeat scroll 50% center transparent; min-height: 140px; height: 100%;"></div>');
// Delay before display
setTimeout(function() {
console.log('I show all invisible!', params.where);
$(params.where).css({
'visibility': 'visible'
});
$('#preloader').remove();
}, 110);
} else {
alert_jq_ui(server_answer.error_txt);
}
},
error: function(xhr, errmsg, err) {
alert_jq_ui(xhr, errmsg, err);
}
});
};
'的setTimeout()'运行一次。 – PHPglue 2014-09-19 21:01:49
setInterval too – user2455668 2014-09-19 21:04:06
OP表示:当第二次调用函数时,间隔不会触发。逻辑问题,但。 – 2014-09-19 21:06:18