From a1dad14f448b9885147a5ae05458a4c5f457b43b Mon Sep 17 00:00:00 2001 From: fat Date: Tue, 10 Jun 2014 20:24:19 -0700 Subject: [PATCH] fix #13185 - keyboard support for carousel --- js/carousel.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/js/carousel.js b/js/carousel.js index af51cf50d541..bc4c60ef4c77 100644 --- a/js/carousel.js +++ b/js/carousel.js @@ -18,7 +18,7 @@ // ========================= var Carousel = function (element, options) { - this.$element = $(element) + this.$element = $(element).on('keydown.bs.carousel', $.proxy(this.keydown, this)) this.$indicators = this.$element.find('.carousel-indicators') this.options = options this.paused = @@ -28,8 +28,8 @@ this.$items = null this.options.pause == 'hover' && this.$element - .on('mouseenter', $.proxy(this.pause, this)) - .on('mouseleave', $.proxy(this.cycle, this)) + .on('mouseenter.bs.carousel', $.proxy(this.pause, this)) + .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) } Carousel.VERSION = '3.1.1' @@ -40,6 +40,16 @@ wrap: true } + Carousel.prototype.keydown = function (e) { + switch (e.which) { + case 37: this.prev(); break + case 39: this.next(); break + default: return + } + + e.preventDefault() + } + Carousel.prototype.cycle = function (e) { e || (this.paused = false)