Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';使用jScrollPane时,不要在Javascript中滚动_Javascript_Jsf 2_Jscrollpane_Composite Component_Jquery Jscrollpane - Fatal编程技术网

Can';使用jScrollPane时,不要在Javascript中滚动

Can';使用jScrollPane时,不要在Javascript中滚动,javascript,jsf-2,jscrollpane,composite-component,jquery-jscrollpane,Javascript,Jsf 2,Jscrollpane,Composite Component,Jquery Jscrollpane,我正在尝试使用JScrollPane来简化应用程序表滚动的实现。有些表太大了,这样,我实现了表元素的动态加载。加载工作正常,但是,当表格加载新元素时,scrollToY(int)方法不起作用: Scroll = { init: function (idComponente, componenteAAtualizar, comando) { var componente = $(PrimeFaces.escapeClientId(idComponente)); component

我正在尝试使用JScrollPane来简化应用程序表滚动的实现。有些表太大了,这样,我实现了表元素的动态加载。加载工作正常,但是,当表格加载新元素时,scrollToY(int)方法不起作用:

Scroll = {

init: function (idComponente, componenteAAtualizar, comando) {
    var componente = $(PrimeFaces.escapeClientId(idComponente));
    componente.container = $(PrimeFaces.escapeClientId(idComponente + ":container"));
    componente.idComponenteAAtualizar = PrimeFaces.escapeClientId(componenteAAtualizar);
    componente.desativado = false;;
    componente.posicao=0;
    componente.comando = comando;

    componente.container[0].oncomplete = function (xhr, status, args) {
        var idEscapadoPainelLista = PrimeFaces.escapeClientId(idComponente);
        if (args != null)
            componente.desativado = args.desativarLiveScroll;
        componente.adicionarListenerScroll();
    }

    componente.adicionarListenerScroll = function () {
        $('.ui-datatable-scrollable-body').jScrollPane();
        $('.ui-datatable-scrollable-body').data('jsp').scrollToY(componente.posicao);
        $('.ui-datatable-scrollable-body').bind('jsp-scroll-y', componente.atualizarElementos);
    }

    componente.removerListenerScroll = function () {
        $('.ui-datatable-scrollable-body').unbind('jsp-scroll-y');
    }

    componente.atualizarElementos = function(event, scrollPositionY, isAtTop, isAtBottom) {
        if (!componente.desativado && isAtBottom){
            componente.posicao=scrollPositionY;
            componente.removerListenerScroll();
            comando();
        }
    };

    componente.adicionarListenerScroll();
}
};

为什么我不能滚动到我想要的位置?

我使用JQuery滚动到该位置,而不是使用jScrollPane的scrollToY功能解决了这个问题。因此,代码更改如下:

componente.adicionarListenerScroll = function () {
    $('.ui-datatable-scrollable-body').jScrollPane();
    $('.ui-datatable-scrollable-body').data('jsp').scrollToY(componente.posicao);
    $('.ui-datatable-scrollable-body').bind('jsp-scroll-y', componente.atualizarElementos);
}
为此:

componente.adicionarListenerScroll = function () {
        $('.ui-datatable-scrollable-body').scrollTop(componente.posicao);
        $('.ui-datatable-scrollable-body').jScrollPane();
        $('.ui-datatable-scrollable-body').bind('jsp-scroll-y', componente.atualizarElementos);
}