1

我在 bootstrap.js 中有一个代码(来自 twitter)

!function( $ ) {

  $(function () {

    "use strict"

    /* CSS TRANSITION SUPPORT (https://gist.github.com/373874)                                                                                                                                                                                                                  
     * ======================================================= */

    $.support.transition = (function () {
      var thisBody = document.body || document.documentElement
        , thisStyle = thisBody.style
        , support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined

      return support && {
        end: (function () {
          var transitionEnd = "TransitionEnd"
          if ( $.browser.webkit ) {
            transitionEnd = "webkitTransitionEnd"
          } else if ( $.browser.mozilla ) {
            transitionEnd = "transitionend"
          } else if ( $.browser.opera ) {
            transitionEnd = "oTransitionEnd"
          }
          return transitionEnd
        }())
      }
    })()

  })

}( window.jQuery );

但是, $.browser 显然已从 jquery 1.9 中删除..

我怎样才能重新编码这个片段?

文档说要使用$.support,但我不确定如何使用。

4

3 回答 3

2

加载Modernizr.prefixed并使用地图辅助数组:

var transEndEventNames = {
    'WebkitTransition' : 'webkitTransitionEnd',
    'MozTransition'    : 'transitionend',
    'OTransition'      : 'oTransitionEnd',
    'msTransition'     : 'MSTransitionEnd',
    'transition'       : 'transitionend'
},
transformHyphenateNames = {
    'WebkitTransform' : '-webkit-transform',
    'MozTransform'    : '-moz-transform',
    'OTransform'      : '-o-transform',
    'msTransform'     : '-ms-transform',
    'transform'       : 'transform'
},
transitionPropName = Modernizr.prefixed('transition'),
transEndEventName = transEndEventNames[ transitionPropName ],
transformPropName = Modernizr.prefixed('transform'),
transformHyphenateNames = transformHyphenateNames[ transformPropName ];
于 2013-07-26T06:59:03.180 回答
0

最简单的选项似乎也是加载jQuery.migrate插件。

于 2013-07-26T06:49:21.147 回答
0

似乎这已经在最新版本的 Bootstrap 中得到修复 - 也许你应该将你的 Bootstrap 更新到最新版本:

(这是基于我在存储库中搜索 $.browser 而没有找到任何东西)

于 2013-07-26T07:07:34.710 回答