1

ホバー時にのみ回転する jquery 回転関数を設定する方法がわかりません。

私が使用しているコードは次のとおりです。

$('div.settingsButton').hover(function() {
    var angle = 0;
    setInterval(function() {
        angle += 4;
        $(this).rotate(angle);
    }, 50);
},
function() {
    var angle = 0;
    setInterval(function() {
        angle = 0;
        $(this).rotate(angle);
    }, 50);
});

回転は、ここにあるプラグインです: http://code.google.com/p/jqueryrotate/

4

1 に答える 1

-1

タイマー関数内でthisは、DOM 要素ではありません。変数に格納する必要があります。また、関数で使用する必要がclearIntervalありますmouseout

サンプルコードは次のとおりです。

var timer;

$('div.settingsButton').hover(function() {

    var angle = 0,
        $this = $(this);

    timer = setInterval(function() {
        angle += 4;
        $this.rotate(angle);
    }, 50);
},
function() {

    timer && clearInterval(timer);
    $(this).rotate(0);
});

これがフィドルです:http://jsfiddle.net/ptJuU/

于 2012-07-10T03:02:37.087 に答える