У меня проблема с моим кодом. У меня есть две таблицы, загруженные в два блока, например:
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: 35приобретенная таблица
(7711) liveLoads.js: 29 не обновляется [<div
id="vbcTable"
update="true">…</div>
] false
(2) <exception> <exception> <exception> <exception>
*
изначально и vbe, и vbc - пустые div.
Может ли кто-нибудь помочь мне здесь?
* UPDATE *
У меня также есть этот код:
function expand(EntID) {
console.log('expand',EntID)
$.ajax({
url: "showRows.php?ID=" + EntID
});
}
, который, когда что-то щелкает по таблице и вызывает эту функцию, запускается.
но затем другие функции setTimeouts впадают в волнение и их вызывают миллион раз подряд, не обращая внимания на время