gpt4 book ai didi

php - setTimeout 无法与 jQuery 和 load() 一起正常工作

转载 作者:行者123 更新时间:2023-11-27 22:49:02 25 4
gpt4 key购买 nike

我的代码有问题我有 2 个表加载到两个 div 中,如下所示:

loadTable($("#vbeTable"),'getUpdateA')
loadTable($("#vbcTable"),'getUpdateB')

我也有这个:

$("#vbeTable, #vbcTable").live('mouseover mouseout', function(event) {
if (event.type == 'mouseover') {
// console.log('hovering over',$(this));
$(this).attr('update',false)
} else {
// console.log('NOT hovering over',$(this));
$(this).attr('update',true)
}
})

loadTable函数是这样的:

function loadTable($table, $php, $noRefresh){
if($table.attr('update') == 'false'){
console.log('not updating', $table, $table.attr('update'))
setTimeout( function () { loadTable($table, $php); }, 1000)
}
$table.load($php+'.php',function(response, status, xhr) {
if (status == "success") {
if(!$noRefresh){
console.log('acquired table')
setTimeout( function () { loadTable($table, $php); }, 1000)
}
}
else {
console.log('error aquiring lock on', $table.attr('id'), response, status, xhr)
}
});

*出于某种原因,setTimeout 函数没有等待正确的时间,在控制台中我得到:

(96) liveLoads.js:35acquired table
(7711) liveLoads.js:29not updating [ <div
id=​"vbcTable"
update=​"true">​…​</div>
​ ] false
(2)<exception> <exception> <exception> <exception>* orginally both vbe and vbc are empty divs.

有人能帮我吗?

*更新*

我也有这个代码:

function expand(EntID) {
console.log('expand',EntID)
$.ajax({
url: "showRows.php?ID=" + EntID
});
}

当点击表上的某些东西时调用它运行的这个函数。

但随后其他函数 setTimeouts 变得头晕目眩,它们被连续调用了一百万次而没有注意时间

最佳答案

您正在调用超时回调函数,而不是将其传递给超时。

代替:

// this will call loadTable right away and setTimeout will trigger the returned value in a sec.
setTimeout( loadTable($table, $php), 1000)

做:

// setTimeout will trigger the anon. function in a sec
setTimeout( function () { loadTable($table, $php); }, 1000)

您还从 loadTable 中调用相同的函数 loadTable。而且我没有看到这个无限循环中的中断。

关于php - setTimeout 无法与 jQuery 和 load() 一起正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5238469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com