jQuery .load () плохо работает с Drupal 7 Views - PullRequest
0 голосов
/ 23 января 2012

Я использую .load () для ajax загрузки своих страниц из меню. Это работает хорошо, однако, когда мой контент является представлением, он загружает все в этом представлении. Не принимает во внимание пейджинг. То есть, для 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 голосов
/ 26 января 2012

Попробуйте просто исправить ошибку следующим образом:

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

В вашем примере у вас нет дополнительных }); закрывающих тегов в конце. Если то же самое на вашем сайте, то у вас определенно есть ошибка в вашем скрипте. Не уверен, что это может помочь, так как я не проверял твой код, хорошо ли он написан.

[EDIT]

Но если пойти дальше, я бы рекомендовал написать следующее:

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();, если вы используете этот элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...