diff --git a/assets/javascripts/bootstrap/carousel.js b/assets/javascripts/bootstrap/carousel.js index a5fcac3170..2ed0a80b1c 100644 --- a/assets/javascripts/bootstrap/carousel.js +++ b/assets/javascripts/bootstrap/carousel.js @@ -232,9 +232,9 @@ e.preventDefault() } - $(document) - .on('click.bs.carousel.data-api', '[data-slide]', clickHandler) - .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler) + $('[data-slide], [data-slide-to]') + .on('click.bs.carousel.data-api', clickHandler) + .on('click.bs.carousel.data-api', clickHandler) $(window).on('load', function () { $('[data-ride="carousel"]').each(function () { diff --git a/assets/javascripts/bootstrap/collapse.js b/assets/javascripts/bootstrap/collapse.js index 2cd5997fd5..ae650a03d8 100644 --- a/assets/javascripts/bootstrap/collapse.js +++ b/assets/javascripts/bootstrap/collapse.js @@ -197,7 +197,7 @@ // COLLAPSE DATA-API // ================= - $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { + $('[data-toggle="collapse"]').on('click.bs.collapse.data-api', function (e) { var $this = $(this) if (!$this.attr('data-target')) e.preventDefault() diff --git a/assets/javascripts/bootstrap/dropdown.js b/assets/javascripts/bootstrap/dropdown.js index 4ded850121..8f436a8f45 100644 --- a/assets/javascripts/bootstrap/dropdown.js +++ b/assets/javascripts/bootstrap/dropdown.js @@ -156,10 +156,23 @@ // =================================== $(document) - .on('click.bs.dropdown.data-api', clearMenus) - .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) - .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) - .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) - .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown) + .on('show.bs.dropdown', function(e) { + $(document) + .on('click.bs.dropdown.data-api', clearMenus) + }) + .on('hide.bs.dropdown', function(e) { + $(document) + .off('click.bs.dropdown.data-api', clearMenus) + }) + + $('.dropdown form') + .on('click.bs.dropdown.data-api', function (e) { e.stopPropagation() }) + + $('.dropdown-menu') + .on('keydown.bs.dropdown.data-api', Dropdown.prototype.keydown) + + $(toggle) + .on('click.bs.dropdown.data-api', Dropdown.prototype.toggle) + .on('keydown.bs.dropdown.data-api', Dropdown.prototype.keydown) }(jQuery); diff --git a/assets/javascripts/bootstrap/modal.js b/assets/javascripts/bootstrap/modal.js index b9eca494fe..cee0af0c5d 100644 --- a/assets/javascripts/bootstrap/modal.js +++ b/assets/javascripts/bootstrap/modal.js @@ -335,7 +335,7 @@ // MODAL DATA-API // ============== - $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { + $('[data-toggle="modal"]').on('click.bs.modal.data-api', function (e) { var $this = $(this) var href = $this.attr('href') var target = $this.attr('data-target') ||