PrimeFaces Carousel Next()和PRAV()方法在版本5.3和6.0中不起作用



我正在使用PrimeFaces 5.2与JSF 2.2。使用PrimeFaces Carousel Next()和PRAV()导航方法没有问题,直到将PrimeFaces的新版本5.3(或6.0)升级为止。解决这个问题是否有任何想法。

我也遇到了这个问题。我发现的解决方案是使用setPage。例如:

 function CarouselNext()
      {
        var currentPage = PF('wcarouselDistro').page;
        var totalPages = PF('wcarouselDistro').totalPages - 1;
        var c = (currentPage === (totalPages));
        if (!c)
        {
          PF('wcarouselDistro').setPage(currentPage + 1);
        }
      }
   function CarouselPrev()
      {
        var currentPage = PF('wcarouselDistro').page;
        if (currentPage !== 0)
        {
          PF('wcarouselDistro').setPage(currentPage - 1)
        }
      }

我的组件。

<p:graphicImage id="s1" library="images" name="prev-icon.png"  
                            style="display: inline-block; cursor: pointer;" onclick="CarouselPrev();" />
 <p:graphicImage id="s7" library="images/ulcs" name="next-icon.png" style="display: inline-block; cursor: pointer;" onclick="CarouselNext();" />

我希望有所帮助!

这不是错误。在PF 5.3(http://blog.primefaces.org/?p=3569)中重新设计了旋转木马,并重新设计和/或删除了方法。

如果您在PF 5.2中选中Carousel源代码(https://github.com/primefaces/primefaces/blob/5_2/src/src/main/memain/meta-inf/resources/meta-inf/resources/primefaces/carousel/carousel/carousel/carousel.js,)在第205行,Next()和PRAV()方法在那里。

但是,从源代码中删除了Next()和PRAV()方法。您可以在PF 6.0源代码中检查它:github.com/primefaces/primefaces/blob/master/src/src/main/resources/meta-inf/resources/primefaces/carousel/carousel/carousel.js。

对于导航,您可以使用setPage(),例如phelipe galiotti的答案。

i使用pf6.0 startautoplay()方法中的代码实现下一个圆形轮播的方法。

function prevImage (PFCarousel) {
  if(PFCarousel.page === 0)
	PFCarousel.setPage(PFCarousel.totalPages - 1);
  else
    PFCarousel.setPage(PFCarousel.page - 1);
}
		
function nextImage (PFCarousel) {
  if(PFCarousel.page === (PFCarousel.totalPages - 1))
    PFCarousel.setPage(0);
  else
    PFCarousel.setPage(PFCarousel.page + 1);
}

最新更新