]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
honor wrap option in Carousel.getItemForDirection; fixes #15144 15152/head
authorChris Rebert <code@rebertia.com>
Sun, 16 Nov 2014 06:43:20 +0000 (22:43 -0800)
committerChris Rebert <code@rebertia.com>
Sun, 16 Nov 2014 06:43:20 +0000 (22:43 -0800)
js/carousel.js

index 282d618fe20e8eef9840b8aa866183657a06feb9..99a077c10a7d55da6d02ed310eb7eec78ce1ce84 100644 (file)
   }
 
   Carousel.prototype.getItemForDirection = function (direction, active) {
-    var delta = direction == 'prev' ? -1 : 1
     var activeIndex = this.getItemIndex(active)
+    var willWrap = (direction == 'prev' && activeIndex === 0)
+                || (direction == 'next' && activeIndex == (this.$items.length - 1))
+    if (willWrap && !this.options.wrap) return active
+    var delta = direction == 'prev' ? -1 : 1
     var itemIndex = (activeIndex + delta) % this.$items.length
     return this.$items.eq(itemIndex)
   }
     var $next     = next || this.getItemForDirection(type, $active)
     var isCycling = this.interval
     var direction = type == 'next' ? 'left' : 'right'
-    var fallback  = type == 'next' ? 'first' : 'last'
     var that      = this
 
-    if (!$next.length) {
-      if (!this.options.wrap) return
-      $next = this.$element.find('.item')[fallback]()
-    }
-
     if ($next.hasClass('active')) return (this.sliding = false)
 
     var relatedTarget = $next[0]