Добрый день.
Не могу понять как можно исправить данную ошибку. Оба запроса работают идеально по отдельности, но при одновременном вызове дается сбой.
Первый запрос - обновление чата каждые N секунд. Пускается в цикле.
function refresh_chat(){
clearTimeout(refresh_time);
block=$('.mini_chat');
room=block.find('.js_room').val();
last_id=block.find('.msg:last').attr('msg_id');
if (full_null(last_id)) last_id=1;
$.ajax({
type: 'POST',
dataType: 'json',
url:"../php_scripts/chat_tools.php",
context:this,
data:({last_id:last_id,room:room, task:"chat_refresh"}),
success: function(data){
block=$('.mini_chat');
if (data.body!=""){
msg_block=block.find('.msg_block');
scroll=scroll_check_end_position(msg_block);
msg_block.append_fadeIn($(data.body));
if (scroll==true)
scroll_to_end(msg_block);
}
room_block=block.find('.js_room');
console.log(block);
patern=/[(][0-9]+[)]/;
for (var i in data.online) {
//alert(i);
select_block=room_block.find('[value="'+i+'"]');
//alert(select_block.length);
str=select_block.html().replace(patern,'('+data.online[i]+')');
select_block.html(str);
}
//Обновляем онлайн комнат.
//chat_room_refresh(block,data);
refresh_time=setTimeout(refresh_chat, CHAT_REF_TIME);
}
})
}
Второй запрос - выбор категории новостей по группам.
function news_change_block(){
new_block=$(this).val();
cur_select=$(this).attr('block');
if (cur_select=='company') cur_select=1;
if (cur_select=='block') cur_select=0;
block=$(this).closest('.full_news_block');
bloking_elem(block,0.2,'loading');
href=parseURL(document.location.href);
href.data.where=obj_to_arr(href.data.where);
href.data.where[cur_select][1]=new_block;
if (cur_select==0) href.data.where[1][1]="";
href.data.cp=1;
new_href=href.link+'?'+serialize(href.data)
history.pushState(null, null, new_href);
$.ajax({ type: 'POST',dataType: 'json', url:"../php_scripts/catalogs_tools.php",
data:({href:new_href,task:"news_refresh_full_news_block"}),context: block,
complete: function(){unbloking_elem(block);},
success: function(data){
block.html($(data.news_block).unwrap());
}})
}
$(document).ready(function() {
$('.news_mini_block').on('change','.js_news_block_select',news_select_company);
$('.full_news_block').on('change','.js_block_selector',news_change_block);
})
Ошибку выдает код чата(1-й) на строке.
room_block=block.find('.js_room');
Тут с block - все нормально, но вот room_block уже левый.
Сама ошибка:
TypeError: select_block.html(...) is undefined
str=select_block.html().replace(patern,'('+data.on line[i]+')');
Может кто сталкивался с подобным? и какие пути решения существуют?