如何在鼠标悬停或悬停时连续重复触发?

时间:2011-01-20 15:14:21

标签: jquery hover mouseover

我有以下脚本,哪种作品。

如果我将鼠标光标移动到'.sample'中的链接上,则会触发“点击”。

我如何实现,这种点击是持续触发的(循环类型)?

$jq('.sample a').mouseover(function(){
    $jq(this).trigger('click');
    return false;
});

我尝试了以下操作,但无效(点击只触发一次然后停止):

$jq('.sample a').mouseover(function(){
    setInterval(function() { $jq('.nav-sub-browser a').trigger('click'); }, 100);
});

我也尝试了以下解决方案,我在stackoverflow找到了。但是这个也只触发一次点击:

function triggerClick() {
    $jq('.nav-sub-browser a').trigger('click');
}
var interval;
$jq('.nav-sub-browser a').hover(function() {
    interval = setInterval(triggerClick(), 100);
},
function() {
    clearInterval(interval);
});

我做错了什么?

2 个答案:

答案 0 :(得分:2)

您需要将函数参考传递给setInterval,因此请在()之后删除triggerClick的结尾:

function triggerClick() { 
    $jq('.nav-sub-browser a').click();
} 

var interval; 
$jq('.nav-sub-browser a').hover(function() { 
    interval = setInterval(triggerClick, 100); 
}, function() {
    clearInterval(interval); 
});

答案 1 :(得分:2)

您是否尝试过点击?或者您使用触发器的具体原因是什么?

var myInterval = false;
$('.sampleA').mouseover(function(){
   myInterval = setInterval(function(){
       $('.nav-sub-browser a').click();
   }, 100);
});

$('.sampleA').mouseout(function(){
   clearInterval(myInterval);
   myInterval = false;
});

这是一个证明: http://www.jsfiddle.net/jbenson/dpC7W/