Помогите решить проблему со скроллом
Здравствуйте! Есть такой код:
function show_message(u_id){ if(obj.find("div[select_user_msg='"+u_id+"']").size()==0) { $("dl.user-info").hide(); $(".msg-input-box").hide(); obj.find(".msg_list").hide(); $("#msg_list").prepend("<div class='loading_user_msg_list msg-dialog-chat-window-cnt'></div>"); setTimeout(function() { obj.find("#user_msg_list").prepend('<div class="msg_list" select_user_msg="'+u_id+'"></div>'); obj.find("div[select_user_msg='"+u_id+"']").show(); $(".loading_user_msg_list").remove(); $("dl.user-info").show(); $(".msg-input-box").show(); show_message_list(u_id); },500); } else { $("dl.user-info").show(); $(".msg-input-box").show(); obj.find(".msg_list").hide(); obj.find("div[select_user_msg='"+u_id+"']").show(); } $('.scroll_msg_list').scroll(function(){ var top = $(this).scrollTop(), max = $('#user_msg_list').height() - $(this).height(); var scroll_percent = (top / max * 100).toFixed(0); scroll_msg = scroll_percent; if (scroll_percent == 0 && obj.find("div[select_user_msg='"+u_id+"'] > div[class='noo_message']").size()==0 && message_block_scroll == true) { message_block_scroll = false; obj.find("div[select_user_msg='"+u_id+"']").prepend('<div class="message-more"><span class="user_loading"></span></div>'); setTimeout(function() { ajax_update_message_list(u_id); },1000); } }); } Проблема в том что когда при загрузке чата открываешь диалог с первым пользователем ajax подгрузка сообщений при скролле работает как надо. А если потом в чате не перезагружая страницы открыть диалог с другим пользователем то при скролле в функцию ajax_update_message_list(u_id); передается сначала u_id предыдущего пользователя а уже при повторном скролле передается u_id нужного пользователя. Почему так происходит и как этого изменить? Когда вызываем функцию ajax_update_message_list(u_id); без скролла то передается u_id нужного пользователя, поэтому я решил что дело в скролле. Может данные в скролле как то кэшируются и как тогда обновлять этот кешь или в чем причина?! Помогите пожалуйста решить эту проблему! Я просто новичок и многого не знаю. |
Часовой пояс GMT +3, время: 09:04. |