Can';使用jScrollPane时,不要在Javascript中滚动
我正在尝试使用JScrollPane来简化应用程序表滚动的实现。有些表太大了,这样,我实现了表元素的动态加载。加载工作正常,但是,当表格加载新元素时,scrollToY(int)方法不起作用: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
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);
}