手动将“:animated”选择器添加到jQuery对象

时间:2011-03-27 12:11:10

标签: jquery

我有一个函数可以使用CSS3为dom元素设置动画(如果可用)。现在我经常使用:animeted jQuery选择器。如何使我的CSS3动画元素也响应:animeted选择器?

当使用jQuery动画DOM对象时,它会在Data对象中获得"fxqueue":"inprogress",所以我想我可以使用以下方法手动添加元素:

$("div").eq(0).data({"fxqueue": "inprogress"});

console.log( $("div:animated") )

没有选择任何内容。

1 个答案:

答案 0 :(得分:1)

那不行 :animated过滤器定义为

jQuery.expr.filters.animated = function( elem ) {
    return jQuery.grep(jQuery.timers, function( fn ) {
        return elem === fn.elem;
    }).length;
};

检查元素是否在jQuery.timers

相反,您可以替换:animated选择器:

var originalAnimated = jQuery.expr.filters.animated;
jQuery.expr.filters.animated = function(elem) { 
    return originalAnimated(elem) || something;
};