jquery
  • wordpress
  • triggers
  • infinite-scroll
  • 2012-05-26 82 views 13 likes 
    13

    只是似乎沒有工作... :-(看過有關它的更多的抱怨,但我無法找到答案無限滾動手動觸發

    的問題: 無限滾動的作品,但不。手動觸發 當我點擊鏈接,什麼都不會發生 螢火蟲給

    Infinite Scroll

    我的代碼:

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

    我的腳本:

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

    也試過

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

    ,而不是

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

    但沒有運氣。

    螢火蟲接着說trigger(retrieve.infscr) called incorrectly

    回答

    53

    PFOE,發現它...萬歲好的文檔

    這(無法使用此插件!):

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

    應該是:

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

    的最大的問題是.infscr不應該在那裏.. 希望它有助於某人el SE ..

    文檔樣的解決方案:

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

    注:
    您可能需要添加manual trigger behavior如果您正在使用磚石或同位素,以使其發揮作用的工作。在infinitescroll之後只包含manual-trigger.js,並在調用插件時傳遞​​來傳遞行爲。

    +4

    如果不是這篇文章,我會一直在腳下自己拍攝! – Norris

    +0

    非常感謝!所以不是典型的保羅愛爾蘭人...... – jetlej

    +0

    「萬歲好文檔(不包括這個插件!)」。同意100% – Dev

    0

    也許...... $( '#旁邊一個')點擊()。 ?

    +0

    不,我希望它是那麼簡單,一切在我的腳本只使用jQuery(文檔)負荷。準備好(function(){}函數。而無限滾動確實工作(證明jQuery而不是$)只是不是手動觸發器。 – inTOWN

    +0

    似乎這應該工作... jQuery('ul#infinite')。infinitescroll('retrieve') –

    1

    我做了以下的調整,以確保被點擊後的第一次的導航鏈接出現了:

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

    嗨Divot,有沒有辦法隱藏按鈕,當沒有更多的職位?如果我按照您的建議進行操作,即使沒有更多帖子,按鈕也會顯示所有時間。 – Jeff

    相關問題