在setInterval中使用'this'变量

时间:2018-08-04 17:34:09

标签: javascript jquery

嗨,我想在jquery函数的setInterval中使用'this'变量 在不工作的行之后,我写了“ //此代码不工作”

 (function($)
            {
                $.fn.rotate=function () {
                    var counter=0;
                    var timer=setInterval(function () {
                        counter++;
                        var transform='rotate('+counter+'deg)';
                        $(this).css('transform',transform); // this code dont work
                        if(counter>=300)
                            clearInterval(timer);
                    },1);
                    return this;
                };
                $('#socialNetworks i').rotate();
            }(jQuery))

非常感谢

1 个答案:

答案 0 :(得分:-2)

在定义函数时使用箭头函数可维护在其中调用函数的this上下文。这样您就可以正确访问函数内的this

( $ => {
    $.fn.rotate=function () {
        var counter=0;
        var timer=setInterval(function () {
            counter++;
            var transform='rotate('+counter+'deg)';
            $(this).css('transform',transform); // this code dont work
            if(counter>=300)
                clearInterval(timer);
        },1);
        return this;
    };
    $('#socialNetworks i').rotate();
})(jQuery)