【问题标题】:Can't scroll in Javascript when using jScrollPane使用 jScrollPane 时无法在 Javascript 中滚动
【发布时间】:2013-10-19 19:31:53
【问题描述】:

我正在尝试使用 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();
}
};

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

【问题讨论】:

    标签: javascript jsf-2 jscrollpane composite-component jquery-jscrollpane


    【解决方案1】:

    我解决了使用 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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 1970-01-01
      • 2015-08-09
      • 2014-12-06
      • 1970-01-01
      相关资源
      最近更新 更多