From e61164e67a048c20c512e99335e3adfcc3b63604 Mon Sep 17 00:00:00 2001 From: Jacob Thornton Date: Sat, 28 Jan 2012 01:35:13 -0800 Subject: [PATCH 1/4] all unit tests passing in ie7 --- js/bootstrap-alert.js | 10 ++++++++-- js/bootstrap-carousel.js | 4 ++-- js/bootstrap-collapse.js | 6 ++++-- js/bootstrap-dropdown.js | 13 ++++++++++--- js/bootstrap-modal.js | 4 ++-- js/bootstrap-scrollspy.js | 3 ++- js/bootstrap-tab.js | 13 +++++++++---- js/tests/unit/bootstrap-popover.js | 2 +- js/tests/unit/bootstrap-tab.js | 1 - js/tests/unit/bootstrap-transition.js | 2 +- 10 files changed, 39 insertions(+), 19 deletions(-) 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 From ab8f4a394c3ffef58e11c872f27927a9ffe4db11 Mon Sep 17 00:00:00 2001 From: Jacob Thornton Date: Sat, 28 Jan 2012 01:48:45 -0800 Subject: [PATCH 2/4] remove js for table sorts --- docs/assets/js/application.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/docs/assets/js/application.js b/docs/assets/js/application.js index f4edd68616..8fd672bb39 100644 --- a/docs/assets/js/application.js +++ b/docs/assets/js/application.js @@ -14,12 +14,6 @@ // make code pretty window.prettyPrint && prettyPrint() - // table sort example - if ($.fn.tablesorter) { - $("#sortTableExample").tablesorter({ sortList: [[1,0]] }) - $(".tablesorter-example").tablesorter({ sortList: [[1,0]] }) - } - // add-ons $('.add-on :checkbox').on('click', function () { var $this = $(this) From 8ade6989c3fb227fbd0a5acf08c1259e20af7dc2 Mon Sep 17 00:00:00 2001 From: Jon Stevens Date: Sat, 28 Jan 2012 02:25:13 -0800 Subject: [PATCH 3/4] no debugger --- js/bootstrap-tooltip.js | 1 - 1 file changed, 1 deletion(-) diff --git a/js/bootstrap-tooltip.js b/js/bootstrap-tooltip.js index 65f8895aa5..67fca5e143 100644 --- a/js/bootstrap-tooltip.js +++ b/js/bootstrap-tooltip.js @@ -145,7 +145,6 @@ break } - debugger if (this.options['z-index']) tp['z-index'] = this.options['z-index'] $tip From d4659521386eab794eaf67f57e8762656aa28de7 Mon Sep 17 00:00:00 2001 From: Jacob Thornton Date: Sat, 28 Jan 2012 11:03:39 -0800 Subject: [PATCH 4/4] clean up js api for dropdowns --- docs/assets/css/bootstrap.css | 2 +- js/bootstrap-dropdown.js | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index 7a55680417..cd0d620bf4 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -1986,7 +1986,7 @@ table .span12 { .navbar-search .search-query :-moz-placeholder { color: #eeeeee; } -.navbar-search .search-query ::-webkit-input-placeholder { +.navbar-search .search-query::-webkit-input-placeholder { color: #eeeeee; } .navbar-search .search-query:hover { diff --git a/js/bootstrap-dropdown.js b/js/bootstrap-dropdown.js index 38b6e054fc..48d3ce0f85 100644 --- a/js/bootstrap-dropdown.js +++ b/js/bootstrap-dropdown.js @@ -27,7 +27,10 @@ var toggle = '[data-toggle="dropdown"]' , Dropdown = function ( element ) { - $(element).bind('click', this.toggle) + var $el = $(element).on('click.dropdown.data-api', this.toggle) + $('html').on('click.dropdown.data-api', function () { + $el.parent().removeClass('open') + }) } Dropdown.prototype = { @@ -51,7 +54,6 @@ isActive = $parent.hasClass('open') clearMenus() - !isActive && $parent.toggleClass('open') return false