使用JQuery将鼠标hover在元素上2秒钟时如何触发单击?

如何触发此内联函数

onClick="showMenu('mnu_searches', event, 0, this)

使用JQuery …如果我将鼠标hover在a.menu-arrow ? 用户将鼠标hover在元素上2秒后,我需要触发一次点击?

任何帮助将不胜感激,谢谢

您可以创建并清除2秒计时器,如下所示:

 $("a.menu-arrow").hover(function() { $.data(this, "timer", setTimeout($.proxy(function() { $(this).click(); }, this), 2000)); }, function() { clearTimeout($.data(this, "timer")); }); 

你可以在这里尝试一下 。 通过使用$.data()我们每个元素都存储一个超时以避免任何问题并清除正确的计时器。 其余的只是在输入元素时设置2秒计时器,并在离开时清除它。 因此,如果你停留2000毫秒,它会触发.click .click() ,如果你离开它会停止清除计时器。

使用hoverIntent插件或doTimeout (比特更重)

您应该能够在两秒钟后触发点击处理程序。 我建议使用以下代码:

 $(function() { var timeout; $('a.menu-arrow').hover(function() { var self = this; timeout = setTimeout(function() { $(self).click(); timeout = null; }); }, function() { if (timeout) { clearTimeout(timeout); } }); });