jQuery .on()结合Modernizr.prefixed()

时间:2013-10-11 12:29:18

标签: javascript jquery

我只是想了解一个必须使用的jQuery脚本 现在我发现了以下片段:

$currPage.addClass( outClass ).on( animEndEventName, function() {
    $currPage.off( animEndEventName );
    endCurrPage = true;
    if( endNextPage ) {
        onEndAnimation( $currPage, $nextPage );
    }
});

我已经知道的充实:
$currPage:这是当前页面。这是一个<div class="page">
endCurrPage:这是一个布尔值,标准为假 endNextPage:与endCurrPage

类似

我的问题是.on( animEndEventName,部分。 animEndEventName变量看起来像这样:

var animEndEventNames = {
    'WebkitAnimation' : 'webkitAnimationEnd',
    'OAnimation' : 'oAnimationEnd',
    'msAnimation' : 'MSAnimationEnd',
    'animation' : 'animationend'
},
animEndEventName = animEndEventNames[ Modernizr.prefixed( 'animation' ) ];

此代码由Modernizr.prefixed():http://modernizr.com/docs/#prefixed

提供

jQuery的.on()等待事件,animEndEventName。那么这究竟是如何运作的?我完全不明白这一部分......

我希望你能帮助我。如果您需要更多代码,请说出来。但我认为这是相关部分。

1 个答案:

答案 0 :(得分:0)

Modernizr.prefixed( 'animation')

这将返回适当的&#34;前缀&#34;您当前浏览器的事件名称。例如,在IE中,它将返回&#34; msAnimation&#34;。

animEndEventNames[ Modernizr.prefixed( 'animation' ) ];

然后,这将获取该值并在animEndEventNames中查找以获取匹配的结束事件名称。对于IE,&#34; MSAnimationEnd&#34;。

$currPage.on( animEndEventName,

这将绑定在触发适合浏览器的动画结束事件时将触发的处理程序。

This site可以很好地解释为什么需要这样做。