jquery - more - infinite scroll wordpress without plugin
desencadenador manual de desplazamiento infinito (3)
Hice la siguiente modificación para asegurar que el enlace de navegación apareciera después de hacer clic la primera vez:
jQuery("#clickable_element").click(function(){
jQuery(''#main_content_container'').infinitescroll(''retrieve'');
jQuery(''#pagination'').show();
return false;
});
Simplemente no parece funcionar ... :-( He visto más quejas al respecto, pero no puedo encontrar la respuesta.
El problema: el desplazamiento infinito funciona pero no el disparador manual. Cuando hago clic en el enlace, no pasa nada. Firebug da
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 ('' '');
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 guion:
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 intenté
jQuery(document).trigger(''retrieve.infscr'');
en lugar de
jQuery(''#next a'').infinitescroll(''retrieve.infscr'');
pero sin suerte.
Firebug luego dice trigger(retrieve.infscr) called incorrectly
Pfoe, lo encontré ... Larga vida a una buena documentación (¡NO con este complemento!)
Esta:
jQuery(''#next a'').click(function(){
jQuery(''#next a'').infinitescroll(''retrieve.infscr'');
return false;
});
Debiera ser:
jQuery(''#next a'').click(function(){
jQuery(''ul#infinite'').infinitescroll(''retrieve'');
return false;
});
el mayor problema fue el .infscr que no debería estar allí ... Espero que ayude a alguien más ...
Solución tipo documentación:
jQuery("#clickable_element").click(function(){
jQuery(''#main_content_container'').infinitescroll(''retrieve'');
return false;
});
Nota:
Es posible que tenga que agregar el comportamiento de activación manual si está trabajando con mampostería o isótopo para que funcione. Simplemente incluya manual-trigger.js
después de infinitescroll y pase el comportamiento al pasar el behavior: ''twitter''
cuando llame al plugin.
Tal vez ... $ (''# next a''). Haga clic en (); ?