2009-07-13 27 views
1

我想爲我的網站創建一個動態分頁系統,並且我決定使用ajax回調函數來動態顯示用戶點擊不同頁面元素時的註釋。我粘貼下面的代碼作爲我如何做的例子......我想問問你們,如果我做得對,或者如果他們有更好的方式來做到這一點,請指點我正確的方向:jquery動態分頁評論專家意見

的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> 
+0

出於好奇,分頁跨度是否會動態生成?如果是這樣,將click方法動態設置爲click =「someMethod(<?echo someNumber?>)可能會更好。這看起來很駭人,但我並不是專家。 – 2009-07-13 17:31:59

+0

yes頁面跨度將動態生成...我正在尋找更多的專家對此的意見..謝謝 – halocursed 2009-07-13 17:36:08

回答

1

我不認爲這是不合理的,但我想提兩個念頭。

首先,我認爲這是分配的點擊處理程序動態而不是實際上是把「點擊=」到HTML(這是「漸進增強」的心臟)是一件好事。 Hoerver,你可能想要使用不同類型的選擇器。按類查找一組元素是定義元素的較慢方法之一,尤其是在可能有多個頁面的情況下。你可以把它們全部放在一個div中,做$(「#myDiv span」)。click()。這應該快得多。

其次,使假設頁碼將總是從跨度ID的第四個字符似乎有點脆弱。它可能會更好,只是使id本身的頁碼。

+0

謝謝我將採取這項作爲我正在做什麼的批准,我會採取您的建議,使id本身的頁碼... ..非常感謝... 他們是否有任何錯誤處理程序,我應該添加? – halocursed 2009-07-13 18:37:14

1
$(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. 看起來你可以簡單地使用跨度爲頁碼的文字內容(見的.text()的變化)。

  2. 您可能希望防止用戶嘗試一次加載太多頁面(請參閱isWorking變量,這會阻止用戶一次加載多個頁面)。