2012-07-10 86 views
1

我無法弄清楚如何設置jquery的旋轉功能,只能在懸停時旋轉。使用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/

回答

-1

在您的定時器功能,this不是DOM元素。你必須將它存儲在一個變量中。另外,您應該在mouseout函數中使用clearInterval

下面是一些示例代碼:

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/

+0

感謝,由於某種原因,我仍然無法得到這個工作?有任何想法嗎? – Olokoo 2012-07-10 03:14:29

+0

@ Ian34 - 它在我提供的小提琴中適合你嗎? – 2012-07-10 03:14:57

+0

完美。一定是我的代碼有問題.. – Olokoo 2012-07-10 03:23:14