2012-05-26 29 views
13

no parece funcionar ... :-(he visto más quejas al respecto, pero no puedo encontrar la respuestadesplazamiento infinito disparador manual

El problema:. trabajos de desplazamiento infinito, pero no . el disparador manual Cuando pulso en el enlace, no pasa nada Firebug da

Infinite Scroll

Mi código:.

<?php echo ('<ul id="infinite">'); ?> 
<?php 
$wp_query = new WP_Query(); 
$wp_query->query('paged='.$paged.'&cat=5&showposts=3&meta_key=video_video&orderby=meta_value&order=ASC' . $post->ID); 
while ($wp_query->have_posts()) : $wp_query->the_post(); ?> 
<?php if (get_post_meta($post->ID, 'video_video', true)) : ?> 
    <li class="video"><?php $home = array("h" => 290, "w" => 380, "zc" => 1, "q" =>100); 
      //echo get('video_video'); 
      echo ('With: '); 
      echo get('participant_first_name'); 
      echo ('&nbsp;'); 
      echo get('participant_last_name'); 
      echo ('</li>');?> 

<?php endif;?> 


<?php endwhile;?> 

<?php if (get_post_meta($post->ID, 'video_video', true)) { ?> 
    <?php if ($wp_query->max_num_pages > 1) : ?> 
     <nav id="nav-below" > 
     <div id="next" > 
     <?php next_posts_link(__('Scroll down for more', 'intowntheme')); ?></div> 
     </nav> 
    <?php endif; //end nav ?> 
<?php } else { ?> 
<p>There are no interviews at the moment </p> 
<?php } ?>  
</ul>  

Y mi guión:

jQuery('ul#infinite').infinitescroll({ 
    navSelector : "#next", // selector for the paged navigation (it will be hidden) 
    nextSelector : "#next a", // selector for the NEXT link (to page 2) 
    itemSelector : "ul#infinite li", // selector for all items you'll retrieve 
    errorCallback: function() { 
      // fade out the error message after 2 seconds 
      $('#infscr-loading').animate({opacity: 0.8},2000).fadeOut('normal'); 
     }, 
    loading   : { 
     msgText: "<em>Loading the next year of Grantees...</em>", 
     finishedMsg: "<em>You've reached the end of the Interviews.</em>" 
    }, 
    }); 

    //kill scroll binding 
    jQuery(window).unbind('.infscr'); 
    //setTimeout("jQuery('#next').slideDown();", 1000); 
    //hook up the manual click guy. 

    jQuery('#next a').click(function(){ 
     jQuery('#next a').infinitescroll('retrieve.infscr'); 
    return false; 
    }); 

también trató

jQuery(document).trigger('retrieve.infscr'); 

en lugar de

jQuery('#next a').infinitescroll('retrieve.infscr'); 

pero no hubo suerte.

Firebug luego dice trigger(retrieve.infscr) called incorrectly

Respuesta

53

PFOE, lo encontró ... Larga vida a una buena documentación

Este (NO con este plugin!):

jQuery('#next a').click(function(){ 
    jQuery('#next a').infinitescroll('retrieve.infscr'); 
return false; 
}); 

debe ser:

jQuery('#next a').click(function(){ 
    jQuery('ul#infinite').infinitescroll('retrieve'); 
return false; 
}); 

la El mayor problema fue el .infscr que no debería estar allí. Espero que ayude a alguien el SE .. solución

documentación similar:

jQuery("#clickable_element").click(function(){ 
    jQuery('#main_content_container').infinitescroll('retrieve'); 
     return false; 
}); 

Nota:
Puede que tenga que añadir el manual trigger behavior si se está trabajando con mampostería o isótopo con el fin de hacer que funcione. Simplemente incluya manual-trigger.js después de infinitescroll y pase el comportamiento pasando behavior: 'twitter' al llamar al complemento.

+4

¡Me seguiría pegando un tiro en el pie todo el día si no fuera por esta publicación! – Norris

+0

¡Muchas gracias! Así que no es típico de Paul Irish ... – jetlej

+0

"Larga vida a la buena documentación (NO con este complemento!)". De acuerdo 100% – Dev

0

Tal vez ... $ ('# junto a') Haga clic en().; ?

+0

No me gustaría que fuera así de simple, todo lo demás en mi script sólo cargas con jQuery (document). función lista (función() {}.Y el desplazamiento infinito funciona (lo que prueba jQuery en lugar de $) simplemente no es el disparador manual. – inTOWN

+0

parece que esto debería funcionar ... jQuery ('ul # infinite'). Infinitescroll ('recuperar') –

1

hice la siguiente pellizco para asegurar el enlace de navegación apareció después de que se ha pulsado la primera vez:

jQuery("#clickable_element").click(function(){ 
    jQuery('#main_content_container').infinitescroll('retrieve'); 
    jQuery('#pagination').show(); 
    return false; 
}); 
+0

Hola Divot, ¿hay alguna manera de ocultar el botón cuando no hay más publicaciones? Si hago lo que me has sugerido, el botón se mostrará todo el tiempo incluso sin más publicaciones. – Jeff

Cuestiones relacionadas