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

时间:2010-09-07 12:52:55

标签: jquery

我如何触发此内联功能

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

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

非常感谢任何帮助,谢谢

3 个答案:

答案 0 :(得分:15)

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

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

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

答案 1 :(得分:0)

使用hoverIntent插件或doTimeout(更重一点)

答案 2 :(得分:0)

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

$(function() {
    var timeout;

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