当某些东西hover时,我如何连续点击一下?

我很确定这有一个简单的解决方案。 我正在使用jCarousellite,我想改变内置导航按钮的行为,在hover时触发。

$("#carousel").jCarouselLite({ vertical: true, btnNext: ".btn-down", btnPrev: ".btn-up", visible:6, circular: false }); $("#carousel .btn-down").hover(function() { $("#carousel .btn-down").click(); }); 

但它只在鼠标hover时触发一次,我需要它在鼠标hover时继续射击。

 var nav = function() { $("#carousel .btn-down").click(); // next move $("#carousel").data( 'hover', window.setTimeout(nav, 1000); // continue in 1000 ms ); }; $("#carousel .btn-down").hover( nav, function() { window.cancelTimeout ($("#carousel").data('hover')); // stop the navigation } ); 

我的代码也遇到了同样的问题,然后我提出了这个解决方案..

 $(document).ready(function(){ $("someid1").hover(function a() { //on hover over some element with id-> someid1 $("#someid2").animate({ width:"+=10" }, function(){ a(); }); }); //execute animation function and call itself again and again on mouseover }); $("someid1").mouseout(function() { $("#someid2").stop(); //stop the animation on mouseout. }); }); 

这对我有用。 希望它能帮到你。

您可以使用setInterval在hover时定期触发事件,并在用户停止hover时使用clearInterval来停止它。 如果你正在使用的插件支持这样的API,那么触发你想要的实际行为而不是触发click事件也会更清晰。 像这样的东西:

 var effectInterval; $('#carousel .btn-down').hover(function() { effectInterval = setInterval(function() { $('#carousel').advanceToNextImage(); // sample API call, check your plugin's docs for how it might actually be done }, 5000); }, function() { clearInterval(effectInterval); }); 

您可以像这样设置单击的间隔,对相反的按钮执行相同的操作:

 $("#carousel .btn-down").hover(function() { $(this).data("to", setInterval(function() { $("#carousel .btn-down").click(); }, 200)); }, function() { clearInterval($(this).data("to")); });