• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z kolejnością wyświetlania.

0 głosów
83 wizyt
pytanie zadane 2 maja 2018 w JavaScript przez Rafał Michalik 1 Początkujący (470 p.)

Mam problem i pewnie rozwiązanie jest banalne ale nie mogę go znaleźć. Chcę by nowa wiadomość w czacie pokazywała się u góry. Obecnie jest tak, że wiadomość dodaje na sam dół a po sekundzie jest na samej górze. Co zrobić by wiadomość od razu była pokazana u góry?

Tutaj zamieszczam kod.

						<script>
		$(document).ready(function(){
		$(document).on('submit', '#chatForm', function(){
			var text = $.trim($("#text").val());
			var name = $.trim($("#name").val());

			if(text != "" && name != "") {
				$.post('chatposter.php', {text: text, name: name}, function(data){
					$(".chatmessages").append(data);
					
					$(".chatmessages").scrollTop($(".chatmessages")[0].scrollHeight);
					$("#text").val('');
				});
			} else {
				alert("Musisz wpisac wiadomość!");
			}
		});
 $(function() {
    $("#text").keypress(function (e) {
        if(e.which == 13) 
		{
            var text = $.trim($("#text").val());
			var name = $.trim($("#name").val());

			if(text != "" && name != "") {
				$.post('chatposter.php', {text: text, name: name}, function(data){
					$(".chatmessages").append(data);
					
					$(".chatmessages").scrollTop;($(".chatmessages")[0].scrollHeight);
					$("#text").val('');
				});
			} else {
				alert("Musisz wpisac wiadomość!");
			}
        }
    });
});


		function getmessages() {
			$.get('getmessages.php', function(data){
				 var amount = $(".chatmessages li:first-child").prop('id');
      $(".chatmessages").html(data);
      var countMsg = data.split('<li').length - 1;
      Array=[countMsg, amount];
   });
   return Array;
		}
		setInterval(function(){
		var num =getmessages();
		if(num[0] > num[1]) {
				$(".chatmessages").scrollTop;($(".chatmessages")[0].scrollHeight);
		}
	},1000);
	

	});
					</script>

 

1 odpowiedź

0 głosów
odpowiedź 2 maja 2018 przez Chess Szeryf (76,750 p.)
Zamień ten 1000 w setInterval na 0 lub nasłuchuj jakąś instrukcją, nie wiem jak się nazywa i jeśli wiadomość została dodana, niech włączy funkcję, która zmienia położenie wiadomości na samą górę.

Chyba to:

https://developer.mozilla.org/en-US/docs/Web/Events/change

W połączeniu z target powinno zadziałać. Przepisz skrypt na czysty JS.

Podobne pytania

0 głosów
2 odpowiedzi 150 wizyt
pytanie zadane 7 kwietnia 2020 w JavaScript przez Samek2222 Początkujący (440 p.)
0 głosów
2 odpowiedzi 358 wizyt
pytanie zadane 17 lutego 2019 w JavaScript przez Rafał Masny Obywatel (1,700 p.)
0 głosów
1 odpowiedź 393 wizyt

87,941 zapytań

136,519 odpowiedzi

304,383 komentarzy

58,306 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...