Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.03.2015, 09:42
Интересующийся
Отправить личное сообщение для Jigan2 Посмотреть профиль Найти все сообщения от Jigan2
 
Регистрация: 13.03.2015
Сообщений: 29

Помогите решить проблему со скроллом
Здравствуйте! Есть такой код:

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 нужного пользователя, поэтому я решил что дело в скролле. Может данные в скролле как то кэшируются и как тогда обновлять этот кешь или в чем причина?! Помогите пожалуйста решить эту проблему! Я просто новичок и многого не знаю.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить проблему с ссылками. Bananza Элементы интерфейса 10 06.02.2015 08:26
Помогите решить проблему 34gosha61 Мобильный JavaScript 3 13.08.2014 14:54
Помогите решить проблему Ingiborn Общие вопросы Javascript 0 10.07.2014 12:12
History API. Помогите решить проблему InviS Events/DOM/Window 2 16.10.2011 13:34
Помогите решить проблему felixfix Общие вопросы Javascript 4 21.04.2011 11:00