2010-10-26 20 views
3

Certains sites ont des tables qui ajoutent des lignes lorsque vous faites défiler le navigateur afin que le bas de la table soit visible.Comment ajouter des lignes à une table lorsque la dernière ligne est visible dans le navigateur?

Devinez c'est quelque chose comme ceci:

  1. jQuery détecte que la fin de la table est visible dans le navigateur
  2. $.getJSON est utilisé pour récupérer les lignes suivantes du serveur
  3. les lignes sont ajoutées .

Questions:

  1. Comment puis-je détecter que la dernière ligne est visible dans le navigateur?
  2. Existe-t-il un meilleur moyen que $ ('# tableId tbody tr'). Length pour obtenir le nombre actuel de lignes?

Répondre

1

(1) détecter si la dernière rangée est visible:

$(window).scroll(function(){ 
    var $window = $(this), 
     $el = $('#tableId tbody tr:last'), 

     viewPaneTop = $window.scrollTop(), 
     viewPaneBottom = viewPaneTop + $window.height(), 

     elementTop = $el.offset().top, 
     elementBottom = elementTop + $el.height(); 

    if ((elementTop >= viewPaneTop) && (elementBottom <= viewPaneBottom)) { 
     // add new rows here 
    } 
}); 

(2) C'est la bonne façon de déterminer le nombre de lignes.