diff --git a/js/bootstrap-alert.js b/js/bootstrap-alert.js index 2df64c6e1d..4a65b135ab 100644 --- a/js/bootstrap-alert.js +++ b/js/bootstrap-alert.js @@ -36,9 +36,15 @@ , close: function ( e ) { var $this = $(this) - , selector = $this.attr('data-target') || $this.attr('href') - , $parent = $(selector) + , selector = $this.attr('data-target') + , $parent + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) $parent.trigger('close') e && e.preventDefault() diff --git a/js/bootstrap-carousel.js b/js/bootstrap-carousel.js index 47d832c821..2f47edb8dc 100644 --- a/js/bootstrap-carousel.js +++ b/js/bootstrap-carousel.js @@ -143,8 +143,8 @@ $(function () { $('body').on('click.carousel.data-api', '[data-slide]', function ( e ) { - var $this = $(this) - , $target = $($this.attr('data-target') || $this.attr('href')) + var $this = $(this), href + , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data()) $target.carousel(options) e.preventDefault() diff --git a/js/bootstrap-collapse.js b/js/bootstrap-collapse.js index e33dadedff..ee36840d2a 100644 --- a/js/bootstrap-collapse.js +++ b/js/bootstrap-collapse.js @@ -124,8 +124,10 @@ $(function () { $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) { - var $this = $(this) - , target = $this.attr('data-target') || e.preventDefault() || $this.attr('href') + var $this = $(this), href + , target = $this.attr('data-target') + || e.preventDefault() + || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 , option = $(target).data('collapse') ? 'toggle' : $this.data() $(target).collapse(option) }) diff --git a/js/bootstrap-dropdown.js b/js/bootstrap-dropdown.js index 1ae317b44c..38b6e054fc 100644 --- a/js/bootstrap-dropdown.js +++ b/js/bootstrap-dropdown.js @@ -36,11 +36,18 @@ , toggle: function ( e ) { var $this = $(this) - , selector = $this.attr('data-target') || $this.attr('href') - , $parent = $(selector) + , selector = $this.attr('data-target') + , $parent , isActive + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) $parent.length || ($parent = $this.parent()) + isActive = $parent.hasClass('open') clearMenus() @@ -76,7 +83,7 @@ * =================================== */ $(function () { - $(window).on('click.dropdown.data-api', clearMenus) + $('html').on('click.dropdown.data-api', clearMenus) $('body').on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle) }) diff --git a/js/bootstrap-modal.js b/js/bootstrap-modal.js index eea1938d0f..91daa8af67 100644 --- a/js/bootstrap-modal.js +++ b/js/bootstrap-modal.js @@ -193,8 +193,8 @@ $(function () { $('body').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) { - var $this = $(this) - , $target = $($this.attr('data-target') || $this.attr('href')) + var $this = $(this), href + , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 , option = $target.data('modal') ? 'toggle' : $.extend({}, $target.data(), $this.data()) e.preventDefault() diff --git a/js/bootstrap-scrollspy.js b/js/bootstrap-scrollspy.js index dcb52456e0..e8bd0715c6 100644 --- a/js/bootstrap-scrollspy.js +++ b/js/bootstrap-scrollspy.js @@ -27,10 +27,11 @@ function ScrollSpy( element, options) { var process = $.proxy(this.process, this) , $element = $(element).is('body') ? $(window) : $(element) + , href this.options = $.extend({}, $.fn.scrollspy.defaults, options) this.$scrollElement = $element.on('scroll.scroll.data-api', process) this.selector = (this.options.target - || $(element).attr('href') + || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 || '') + ' .nav li > a' this.$body = $('body').on('click.scroll.data-api', this.selector, process) this.refresh() diff --git a/js/bootstrap-tab.js b/js/bootstrap-tab.js index 95698d23e5..f19db5da1e 100644 --- a/js/bootstrap-tab.js +++ b/js/bootstrap-tab.js @@ -36,9 +36,14 @@ , show: function () { var $this = this.element , $ul = $this.closest('ul:not(.dropdown-menu)') - , href = $this.attr('data-target') || $this.attr('href') + , selector = $this.attr('data-target') , previous - , $href + , $target + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } if ( $this.parent('li').hasClass('active') ) return @@ -49,10 +54,10 @@ , relatedTarget: previous }) - $href = $(href) + $target = $(selector) this.activate($this.parent('li'), $ul) - this.activate($href, $href.parent(), function () { + this.activate($target, $target.parent(), function () { $this.trigger({ type: 'shown' , relatedTarget: previous diff --git a/js/tests/unit/bootstrap-popover.js b/js/tests/unit/bootstrap-popover.js index 462db8b3e1..08cabae42c 100644 --- a/js/tests/unit/bootstrap-popover.js +++ b/js/tests/unit/bootstrap-popover.js @@ -82,7 +82,7 @@ $(function () { }) popover.popover('show') - console.log(popover) + ok($('.popover').length, 'popover was inserted') ok($('.popover').hasClass('foobar'), 'custom class is present') diff --git a/js/tests/unit/bootstrap-tab.js b/js/tests/unit/bootstrap-tab.js index f326490786..18f490fa5e 100644 --- a/js/tests/unit/bootstrap-tab.js +++ b/js/tests/unit/bootstrap-tab.js @@ -17,7 +17,6 @@ $(function () { + '
  • Profile
  • ' + '' - $('').appendTo("#qunit-fixture") $(tabsHTML).find('li:last a').tab('show') diff --git a/js/tests/unit/bootstrap-transition.js b/js/tests/unit/bootstrap-transition.js index ff4a0f0c34..3f28d2676d 100644 --- a/js/tests/unit/bootstrap-transition.js +++ b/js/tests/unit/bootstrap-transition.js @@ -7,7 +7,7 @@ $(function () { }) test("should provide an end object", function () { - ok($.support.transition.end, 'end string is defined') + ok($.support.transition ? $.support.transition.end : true, 'end string is defined') }) }) \ No newline at end of file