2012-01-23 49 views
0

我正在使用.load()为ajax从菜单中加载我的页面。它运行良好,但是当我的内容是视图时,它会加载该视图上的所有内容。它不需要分页考虑。因此,即100个项目,它将显示所有内容,并在页面底部显示分页。jQuery .load()不适用于Drupal 7视图

只要我按任何视图分页链接,视图行为正常。

我加入以下代码:

jQuery(document).ready(function() { 
    jQuery('#menu li a').unbind('click').click(function(){ 
    var href = jQuery(this).attr('href'); 
    var toLoad = href+' #content'; 
    loadContent(); 
    jQuery('#content').hide('slow',loadContent); 
    jQuery('#load').remove(); 
    jQuery('#main-wrapper').append('<span id="load">LOADING...</span>'); 
    jQuery('#load').fadeIn('normal'); 

    function loadContent() { 
     jQuery('#content').load(toLoad,'',function(){showNewContent()}); 
    } 
    function showNewContent() { 
     jQuery('#content').show('normal',hideLoader()); 
    } 
    function hideLoader() { 
     jQuery('#load').fadeOut('normal'); 
    } 
}); 

回答

0

尝试简单如下修正错误:

jQuery(document).ready(function() { 
    jQuery('#menu li a').unbind('click').click(function() { 
     var href = jQuery(this).attr('href'); 
     var toLoad = href+' #content'; 
     loadContent(); 
     jQuery('#content').hide('slow', loadContent); 
     jQuery('#load').remove(); 
     jQuery('#main-wrapper').append('<span id="load">LOADING...</span>'); 
     jQuery('#load').fadeIn('normal'); 

     function loadContent() { 
      jQuery('#content').load(toLoad, '', function() { 
       showNewContent(); 
      }); 
     } 
     function showNewContent() { 
      jQuery('#content').show('normal', hideLoader()); 
     } 
     function hideLoader() { 
      jQuery('#load').fadeOut('normal'); 
     } 
    }); 
}); 

在你的榜样,你不必额外});在年底结束标签 。如果在您的网站中相同,那么您的脚本中肯定有错误。不确定它是否有帮助,因为如果编写得好,我没有检查过你的代码。

[编辑]

但如果再进一步,我建议写如下:

jQuery(document).ready(function() { 
    jQuery('#menu li a').unbind('click').click(function() { 
     var href = jQuery(this).attr('href'); 
     var toLoad = href+' #content'; 
     loadContent(); 
     jQuery('#content').hide('slow', loadContent); 
     jQuery('#load').remove(); 
     jQuery('#main-wrapper').append('<span id="load">LOADING...</span>'); 
     jQuery('#load').fadeIn('normal'); 

     function loadContent() { 
      jQuery('#content').load(toLoad, '', function() { 
       jQuery('#content').show('normal', function() { 
        jQuery('#load').fadeOut('normal'); 
       }); 
      }); 
     } 
    }); 
}); 

但是我不明白为什么你要求jQuery('#load').remove();如果您使用此元件。