Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

JQuery ile çekilen veriyi gösterip gizlemek

Bir yazının altına yapılan yorumları göstermek için jquery kullanmak istiyorum. Bunun için yorumlar isminde bir linke vereceğim fonksiyon sayesinde, kullanıcı linke ilk tıkladığında jquery post özelliği ile yorumlar başka bir sayfadan çekilecek. Daha sonraki tıklamasında ise bu yorumlar gizlenecek. Fakat aynı linke tekrar tıkladığında yorumların tekrar server'dan istenmesi yerine, halihazırda çekilmiş olan verilerin tekrar gösterilmesini ve böylece fazladan veritabanı işleminin yapılmamasını sağlamak istiyorum. Bir örnek verecek olursak;

Buton:
<a href="javascript:showComments('yaziid')">Yorumlar</a>


Yazıların içinde görüneceği div:
<div class="showComments" id="showComments_<?php echo $yaziid; ?>"></div>


Buraya kadar tamam. Bundan sonrasındaki js kısmını halledemiyorum. Şöyle bi algoritma yazdım fakat JQuery ile uygulayamıyorum...

function showComments(yaziid) {
// Eğer #showComments_yaziid boş ise;
// .. ajax ile veriyi al
// .. #showComments_yaziid içine yaz

// Eğer içi dolu ve görünür ise
// .. #showComments_yaziid görünmez yap

// Eğer içi dolu ve görünmez ise
// .. #showComments_yaziid görünür yap
}
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • uls adlı üyenin fotoğrafı
    8 yıl önce yazılmış
    65 cevap - 10 soru
    Fonsiyon yapmadım ama şöyle bir şey işini görür sanırım;
     
    <!DOCTYPE html>
    <html>
    <head>
      <script src="http://code.jquery.com/jquery-latest.min.js"></script>
    </head>
    <body>
    
    <a href="#" class="area" id="1">yorumları gör</a>
    <div id="test_1" style="border: 1px solid black; width: 100%; height:100px;"></div>
    
    <script>
    $('.area').click(function() {
    	var id = $(this).attr('id');
    	var text = $("#test_"+id).text();
    	if(text=='') {
    		$("#test_"+id).load('server.c?id='+id);
    	} else {
    		$("#test_"+id).toggle(100);
    	}
    });
    </script>
    
    </body>
    </html>
    

Cevaplar

  • kurtitasarim adlı üyenin fotoğrafı
    8 yıl önce yazılmış
    30 cevap - 9 soru
    o div $('#divismi').Toggle(100) kullnarak gösterme ve gizleme işlemlerini yapabilirsin toggle komutu gizli ve göster css ile div e displaye:none dersen ilk olarak gizli gelecektir daha sonra linke vereceğin onclick fonksiyonu ile österme ve gizleme işlemlerini yapabilirsin
    • sedran adlı üyenin fotoğrafı sedran
      gösterip gizlemek ile problemim yok da, ilk tıklamada veriyi çekmeyi, diğer tıklamalarda göster gizle yapmayı beceremedim...
      8 yıl önce yazılmış
  • madpoet adlı üyenin fotoğrafı
    8 yıl önce yazılmış
    83 cevap - 0 soru
    Test etmedim ama:

    function showComments(yaziid) {
        var el = $('#showComments_' + yaziid);
        if(!el.html()) {
            el.load('show_comments.php?yaziid=' + yaziid);
        } else {
            el.toggle();
        }
    }
    


    gibi bişey olması lazım.
    Yok illa eleman gizli mi değil mi onu öğrenip ona göre işlem yapmak istiyorum dersen $(element).is(':visible') diye sorgulayabilirsin.