0

我知道已经问过这个问题,并且已经在这里回答了,但是设置一个计时器可以使用 hover() 函数。

由于我的元素是动态创建的,因此它需要两个不同的功能:一个在 mouseenter 上,另一个在 mouseleave 上。

有人对这种特殊需求有见解吗?

PS:我知道有一个叫 hoverIntent 的插件,但是我不想使用任何插件!

4

2 回答 2

5

尝试

$(document).on({
    mouseenter: function () {
        var $this = $(this);
        var timer = setTimeout(function () {
            $this.click();
        }, 2000)
        $this.data('clicktimer', timer)
    },
    mouseleave: function () {
        clearTimeout($(this).data('clicktimer'))
    }
}, '#test');

演示:小提琴

于 2013-09-22T12:01:20.570 回答
0

像这样的东西?

$('.myelement').on('mouseenter', function(e) {
  var element = $(this),
      ctx = null,
      timeout = 2000;

  ctx = setTimeout(function() {
     element.trigger('click');
     clearTimeout(ctx);
  }, timeout);
});
于 2013-09-22T11:59:31.450 回答