• 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.

Object Storage Arubacloud
0 głosów
117 wizyt
pytanie zadane 2 maja 2018 w JavaScript przez Rafał Michalik 1 Początkujący (490 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,710 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 216 wizyt
pytanie zadane 7 kwietnia 2020 w JavaScript przez Samek2222 Początkujący (440 p.)
0 głosów
2 odpowiedzi 655 wizyt
pytanie zadane 17 lutego 2019 w JavaScript przez Rafał Masny Obywatel (1,700 p.)
0 głosów
1 odpowiedź 836 wizyt

92,576 zapytań

141,426 odpowiedzi

319,651 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...