我使用函數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