2012-05-26 12 views
13

non sembra funzionare ... :-(ho visto più lamentele su di esso, ma non riesco a trovare la rispostascroll infinito attivazione manuale

Il problema:. opere di scorrimento Infinite, ma non . il grilletto manuale quando clicco il link, non accade nulla Firebug dà

Infinite Scroll

il mio codice:.

<?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>  

E il mio script:

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; 
    }); 

anche provato

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

invece di

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

ma senza fortuna.

Firebug poi dice trigger(retrieve.infscr) called incorrectly

risposta

53

Pfoe, trovato ... Lunga vita buona documentazione

Questo (non con questo plugin!):

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

dovrebbe essere:

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

la il più grande problema era il .infscr che non dovrebbe essere lì .. Spero che aiuti qualcuno SE ..

Documentazione simile soluzione:

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

Nota:
Potrebbe essere necessario aggiungere il manual trigger behavior se si sta lavorando con muratura o isotopo al fine di farlo funzionare. Basta includere manual-trigger.js dopo infinitescroll e passare il comportamento passando behavior: 'twitter' quando si chiama il plugin.

+4

Continuerò a spararmi al piede tutto il giorno se non fosse per questo post! – Norris

+0

Grazie mille! Quindi non tipico di Paul Irish ... – jetlej

+0

"Lunga vita buona documentazione (NON con questo plugin!)." Accetto 100% – Dev

0

Forse ... $ ('# prossima a') click().; ?

+0

No vorrei che fosse così semplice, tutto il resto nel mio script solo carichi con jQuery (document). ready (funzione function() {}.E lo scroll infinito funziona (il che dimostra che jQuery invece di $) non è il trigger manuale. – inTOWN

+0

sembra che questo dovrebbe funzionare ... jQuery ('ul # infinito'). Infinitescroll ('retrieve') –

1

ho fatto la seguente tweak per assicurare il collegamento di navigazione si presentò dopo essere stato cliccato la prima volta:

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

Ciao Divot, c'è un modo per nascondere il pulsante quando non ci sono più post? Se faccio ciò che mi hai suggerito, il pulsante mostrerà tutto il tempo anche senza più post. – Jeff

Problemi correlati