Comments uzman görüşüne için jQuery dinamik pagination

2 Cevap php

I am trying to create a dynamic pagination system for my website and I've decided on using ajax callback function to dynamically show the comments when the user clicks on different page elements.. So I'm pasting the code below as an example as to how I am doing it...I would like to ask you guys if I'm doing it right or if their is any better way to do it please point me to the right direction:

javascript:

$(document).ready(function(){
$(".pages").click(function(){
var pageno=$(this).attr("id").slice(4,8);//slicing out numbers from the id i.e "1" from "page1"
$.get("news.php", { pageno: pageno},
    function(data){
     $("#comments").html(data);
    });
});
});

html:

<div>
<span id="page1" class="pages" >1</span>
<span id="page2" class="pages" >2</span>
<span id="page3" class="pages" >3</span>
</div >
<div id="comments">
</div>

php:

<div><?php echo $_REQUEST['pageno'];?></div>

2 Cevap

Ben iki düşünce söz ediyorum ama ben, bu mantıksız olduğunu sanmıyorum.

Birincisi, ben tıklama işleyicileri atamak dinamik yerine aslında (bu "ilerici geliştirme" kalbidir) HTML içine "= tık" koyarak iyi bir şey olduğunu düşünüyorum. Hoerver, sen seçicinin farklı bir türünü kullanmak isteyebilirsiniz. Sınıfının elemanlarının bir grup bulma birçok sayfa olabilir, özellikle elemanları tanımlamak için yavaş yollarından biridir. Sen bir div içinde hepsini koymak ve $ ("# myDiv yayılma") yapabilirdi. (Tıklayın). Bu çok daha hızlı olmalıdır.

İkincisi, sayfa numarası her zaman yayılma id dördüncü karakterde başlayacak varsayım yapmak biraz kırılgan görünüyor. Bu sadece id kendisi tarafından sayfa numarası yapmak daha iyi olabilir.

$(document).ready(function(){
    var isWorking = false;
    $(".pages").click(function(){
    	if ( isWorking ) 
    	{
    		alert('Please wait for your preceeding request to finish.');
    		return false;
    	}
    	isWorking = true;
    	var pageno = $(this).text();
    	$.get("news.php", { pageno: pageno},
    		function(data){
    			$("#comments").html(data);
    			isWorking = false;
    		});
    });
});
  1. Sadece sayfa numarası (. Text () değişiklik görmek) için yayılma metin içeriğini kullanmak olabilir gibi görünüyor.

  2. Sen (bir defada en fazla 1 sayfa yüklenirken engellemek gerekir isWorking değişken, bakınız) bir kerede çok fazla sayfalarını yüklemek için çalışıyoruz açmasını önlemek isteyebilirsiniz.