在this page上,3条评论显示在Bootstrap轮播中。在对评论进行分页时,具有灰色背景的<div>
应调整大小以适应评论的长度。在您回顾评论列表的末尾之前,这种方法运作良好。
例如,如果您使用下一个按钮前往评论,那么当您从上次评论(#3)到第一次评论时,第一次评论会留下一个很大的空白区域。同样,如果您使用prev按钮向后浏览评论,那么当您从第一次评论转到最后一次评论时(#3),评论文本会溢出包含div(请参阅下面的屏幕截图)。
总之,每当你回顾评论列表时,无论是使用prev按钮从#1到#3还是从#3到#1的下一个按钮,都不能正确调整包含div的大小。
当用户通过此轮播分页时调用的事件处理程序位于页面底部(为方便起见,此处转载):
$(document).ready(function () {
$('#reviewsCarousel').carousel({
interval:null
});
// reviewsCarousel height animation and review counter (set .reviewCount to
// the amount of .item in #reviewsCarousel, on .nextReview or .prevReview button
// clicks: set the carousel-inner class to the animate to the height of the next
// item or the first item if there is no next item, on carousel slide, set the
// reviewIndex class text to the index position of the .active .item)
$("#reviewsCarousel .reviewCount").html($('#reviewsCarousel .item').length);
$("#reviewsCarousel .btn.nextReview").click(function () {
var reviewHeight = $("#reviewsCarousel .item.active").next(".item").height();
if (reviewHeight === undefined) {
var reviewHeight = $("#reviewsCarousel .item").first(".item").height();
}
$("#reviewsCarousel .carousel-inner").animate({"height":reviewHeight + "px"}, 400);
$('#reviewsCarousel').bind('slid', function () {
$("#reviewsCarousel .reviewIndex").html($("#reviewsCarousel .active").index("#reviewsCarousel .item") + 1);
});
});
$("#reviewsCarousel .btn.prevReview").click(function () {
var reviewHeight = $("#reviewsCarousel .item.active").prev(".item").height();
if (reviewHeight === undefined) {
var reviewHeight = $("#reviewsCarousel .item").last(".item").height();
}
$("#reviewsCarousel .carousel-inner").animate({"height":reviewHeight + "px"}, 400);
$('#reviewsCarousel').bind('slid', function () {
$("#reviewsCarousel .reviewIndex").html($("#reviewsCarousel .active").index("#reviewsCarousel .item") + 1);
});
});
});
答案 0 :(得分:1)
我在控制台中尝试了一些东西:
$("#reviewsCarousel .item.active").next(".item").height();
发现它是null
。
if (reviewHeight === undefined) // It's never this.
你永远不会进入if
。 undefined !== null
: - )
只需使用:
if (!reviewHeight)
任何虚假价值都足够好。
答案 1 :(得分:1)
reviewHeight
永远不会是undefined
使用if (!reviewHeight)
而不是
答案 2 :(得分:1)
也许最好不要对此if语句使用严格比较。尝试改为
if (reviewHeight == undefined)
如果reviewHeight === null
,还会输入if语句。