2013-05-07 153 views
2

我需要設置一個函數,每隔5秒在一個類的隨機元素上懸停並「解除懸停」。我迄今的onhover與工作如下:jQuery懸停隨機元素

jQuery.fn.random = function() { 
    var randomIndex = Math.floor(Math.random() * 56); 
    return jQuery(this[randomIndex]); 
}; 
var timer = window.setInterval(function() {$('.graphic-container img').random().mouseover();}, 5000); 

有班上56個固定元素,因此「* 56」

對我的生活中,我無法弄清楚如何得到在該隨機元素上工作的mouseout事件?這必須發生在下一個隨機元素被佔用之前。

任何幫助將不勝感激!

回答

2

嘗試

jQuery.fn.random = function() { 
    var randomIndex = Math.floor(Math.random() * 56); 
    return jQuery(this[randomIndex]); 
}; 
var prev; 
var timer = window.setInterval(function() { 
    if(prev){ 
     prev.mouseleave(); 
    } 
    prev = $('.graphic-container img').random().mouseenter(); 
}, 5000); 

演示:Fiddle

+0

完美的作品!謝謝! – iLikeBreakfast 2013-05-07 10:30:22

+0

你可能知道如何在類中的所有元素上調用mouseleave函數 - 在這種情況下是在'.graphic-container'中?因爲當我將鼠標懸停在這些元素的包含元素上時,我不希望在懸停狀態下有兩件事。 – iLikeBreakfast 2013-05-07 10:44:38

+0

@ user1795229你可能不得不在懸停函數中處理這個,就像在我的例子中從所有其他元素中移除'test'類。 – 2013-05-07 10:49:40

0

使用此

var timer = window.setInterval(function() { 
    $('.graphic-container img').random().mouseover().delay(800).mouseout(); 
}, 5000);