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