IE8中的Bootstrap 3轮播错误

时间:2014-01-24 00:16:02

标签: jquery internet-explorer-8 twitter-bootstrap-3

我正在使用新版本的Bootstrap和jQuery

<script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>

但是我在IE8中收到以下错误

Message: 'a.support.transition.end' is null or not an object
Line: 7
Char: 3824
Code: 0
URI: http://netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js

我发现了以下https://github.com/twbs/bootstrap/issues/7295 ..但是我想知道为什么更多人没有体验到这个问题。为什么IE8中的bootstrap似乎坏了?

1 个答案:

答案 0 :(得分:6)

问题在于开发人员忘记在3.0.3版本中检查$.support.transition,该版本仅在支持CSS过渡的浏览器中设置。相反,他们直接转到$.support.transition.end,因为$.support.transition为空,因此无法在IE8中运行。

在将 master 分支标记为新版本之前,您可以尝试使用此修补...

<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
<script>
+function($) {
    'use strict';

    $.fn.carousel.Constructor.prototype.pause = function(e) {
        e || (this.paused = true)

        if (this.$element.find('.next, .prev').length && $.support.transition) {
            this.$element.trigger($.support.transition.end)
            this.cycle(true)
        }

        this.interval = clearInterval(this.interval)

        return this
    }
}(jQuery);
</script>

这是直接从master branch解除的,正如您所看到的,它首先检查$.support.transition

仅供参考,它仅在一周前在主人中修复;) - https://github.com/twbs/bootstrap/commit/ad64b0acc826a1ad1b1adc719960ac3020cc3539