diff --git a/js/alert.js b/js/alert.js index 058d82527c..2052d1ad1a 100644 --- a/js/alert.js +++ b/js/alert.js @@ -31,7 +31,8 @@ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 } - var $parent = $(selector === '#' ? [] : selector) + selector = selector === '#' ? [] : selector + var $parent = $(document).find(selector) if (e) e.preventDefault() diff --git a/js/carousel.js b/js/carousel.js index 3f642f35bf..ea9486f49a 100644 --- a/js/carousel.js +++ b/js/carousel.js @@ -206,10 +206,17 @@ // ================= var clickHandler = function (e) { - var href var $this = $(this) - var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7 + var href = $this.attr('href') + if (href) { + href = href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 + } + + var target = $this.attr('data-target') || href + var $target = $(document).find(target) + if (!$target.hasClass('carousel')) return + var options = $.extend({}, $target.data(), $this.data()) var slideIndex = $this.attr('data-slide-to') if (slideIndex) options.interval = false diff --git a/js/collapse.js b/js/collapse.js index 08862a50c4..fcf8f3cbab 100644 --- a/js/collapse.js +++ b/js/collapse.js @@ -160,7 +160,7 @@ var target = $trigger.attr('data-target') || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 - return $(target) + return $(document).find(target) } diff --git a/js/dropdown.js b/js/dropdown.js index 75fa55ea86..c193f11d38 100644 --- a/js/dropdown.js +++ b/js/dropdown.js @@ -29,7 +29,7 @@ selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 } - var $parent = selector && $(selector) + var $parent = selector && $(document).find(selector) return $parent && $parent.length ? $parent : $this.parent() } diff --git a/js/modal.js b/js/modal.js index f0ef87b94a..329be05382 100644 --- a/js/modal.js +++ b/js/modal.js @@ -322,7 +322,10 @@ $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { var $this = $(this) var href = $this.attr('href') - var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7 + var target = $this.attr('data-target') || + (href && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7 + + var $target = $(document).find(target) var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) if ($this.is('a')) e.preventDefault() diff --git a/js/tests/visual/collapse.html b/js/tests/visual/collapse.html index 4fab1ff874..bc1b7fe16e 100644 --- a/js/tests/visual/collapse.html +++ b/js/tests/visual/collapse.html @@ -66,7 +66,9 @@ - + diff --git a/js/tests/visual/modal.html b/js/tests/visual/modal.html index 6368733c16..ac2bdc448d 100644 --- a/js/tests/visual/modal.html +++ b/js/tests/visual/modal.html @@ -162,6 +162,9 @@ Tall body content to force the page to have a scrollbar. +