v2.5.2
Giriş yap

Belirtilen div sonuna ekleme yapma

enableblacklist
891 defa görüntülendi

jQuery'de append ve prepend ile belirtilen div'in içinde başa veya sona ekleme yapabiliyoruz fakat ben div'in dışına ekleme yapmak istiyorum.
Bunu nasıl yapabilirim?

Cevap yaz
Cevaplar (11)
makifgokce
1327 gün önce

neden o kadar mesaj geliyor bilemedim.

enableblacklist
1327 gün önce

tekrardan merhaba hocam, remove olayı çözüm sağlamadı bende birkaç yöntem denedim ama onu düzeltmeyi bıraktım.

İç mesaj kısmını yazarken karşı taraf 1 kere mesaj gönderdiğinde socket ile yaklaşık 7-9 arası mesaj geliyor. Bu neden oluşur?
Veri tabanında 1 tane.

makifgokce
1327 gün önce

önce .remove() kullanarak li elementini sildirip sonrasında normal olarak ekleyebilirsin.

if($('li#anon_376319534')){
    $('li#anon_376319534').remove();
}
$('#testt').prepend(`<li id="anon_376319534">mesaj</li>`);
enableblacklist
1327 gün önce

html() kullandığımda istediğim gibi oldu teşekkür ederim.
Fakat şöyle bir şey var sen bana mesaj gönderdiğinde istediğim gibi üstüne biniyor mesaj.
Ama senden önce eğer bir başkası bana mesaj gönderdiyse sayfayı yenilemeden sen bana mesaj attığında öteki mesajının üstüne biniyor veritabanından çekilen eski mesaj altta kalıyor
Yani senin mesajın 2 farklı şekilde gösteriyor.

makifgokce
1327 gün önce

val() yerine html() kullan.
val() inputlarda vs. value="" değerini almak veya değiştirmek için geçerliydi.

enableblacklist
1327 gün önce

Bu şekilde yazdığım zaman yeni mesaj gönderdiğimde anlık yenileme yapmıyor.

makifgokce
1327 gün önce

div e id vererek <div id="username"></div>
veya <div data-account="username"></div>
append(), prepend(), after(), before() yerine html() kullanarak yapabilirsin.

$('#username').html('<div>deneme mesajıdır.</div>');
// veya 
$('div[data-account=username]').html('<div>deneme mesajıdır.</div>');
enableblacklist
1327 gün önce

Şuan bu şekilde gönderdiğim her mesaj clientte en üstte geliyor. Benim istediğim aynı kişi yeni mesaj attığında üstte gelmesi değilde o mesajın yerini almasını istiyorum.
Yani kişinin gelen kutusunu yazıyorum herkesten gelen mesajları görebildiği.

tayfunerbilen
1327 gün önce

sildirmek yerine scrollu aşağı indirebilirsiniz her yeni mesaj geldiğinde scrollTop() metodu ile

enableblacklist
1327 gün önce

cevabınız için teşekkür ederim hocam.

Socket.io videonuzu izleyerek gerçek zamanlı chat işlemi yapıyorum. Videodaki tüm konuyu anladım fakat chat işlemi yaptığım için gelen mesaj eski mesajın üstüne geliyor bir önceki mesajı nasıl sildirebilirim?

tayfunerbilen
1327 gün önce

prepend() yerine before() ve append() yerine after() metodlarını kullanarak öncesine ve sonrasına eklemeler yapabilirsin.

<div id="test">
    test
</div>
<script>
    let test = $('#test');
    
    test.prepend('içinde başa yazı ekler');
    test.append('içinde sonra yazı ekler');
    test.before('<div class="deneme">bu eleman öncesine eklenir</div>');
    test.after('<div class="deneme">bu eleman sonrasına eklenir</div>');
</script>