jQuery .load()与Drupal 7 Views不兼容

时间:2012-01-23 14:31:05

标签: jquery load views drupal-7

我正在使用.load()来从菜单中加载我的页面。它工作得很好,但是当我的内容是一个视图时,它会加载该视图上的所有内容。它不考虑寻呼。因此,对于100个项目,它将显示所有内容,并在页面底部显示分页。

只要按下任意视图分页链接,视图就会正常运行。

我添加了以下代码:

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

1 个答案:

答案 0 :(得分: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();