我有幾個div
代碼。我需要根據API請求更新裏面的html。 它的工作原理,但HTML不刷新(即如果我通過API獲得一個新的結果,HTML保持與第一次迭代相同,但在螢火蟲中,我可以閱讀新的HTML準備注入頁面)。Ajax:setInterval函數不更新HTML(但它的工作原理)
$('div.show-gpio-state').each(function(i, obj) {
var id_gpio = $(this).data('id-gpio');
getGpioState(id_gpio,$(this));
setInterval(function(){getGpioState(id_gpio,$(this))}, 5000);
});
function getGpioState(id_gpio,box) {
$.ajax(
{ url: api_gpio_url+id_gpio,
cache:false,
success: function (result) {
box.html('');
var state = result;
var final_state = '';
if ((state==='error') || (state==='')) {
final_state = '<span class="text-danger"><i class="fa fa-fw fa-2x fa-exclamation-triangle"></i></span>';
} else {
if (state==1) {
final_state = '<p class="h2"><i class="fa fa-fire text-success"></i></p>';
} else {
final_state = '<p class="h2"><i class="fa fa-remove text-grey"></i></p>';
}
}
box.html('');
box.html(final_state);
// here in console I have right final state for right box
console.log(final_state);
console.log(box);
}
});
}
你爲什麼失敗在你成功的回調測試?爲什麼不只是接受結果並將其注入應該去的地方並設置第二個錯誤回調? –
[This「關鍵字是如何工作的?](http://stackoverflow.com/questions/3127429/how-does-the-this-keyword-work) –