如果光标在元素上一段时间,则jquery一个事​​件

时间:2011-10-26 17:28:29

标签: mouseevent jquery

我有一个div,当我将鼠标指向它时,我想发射一个事件。 但是我想只在光标在事件上持续一段时间时触发它。

有任何建议怎么做?

2 个答案:

答案 0 :(得分:1)

  1. 添加设置计时器的鼠标悬停事件。
  2. 添加取消计时器的mouseout事件。
  3. 当计时器过去时,做你想做的事情。

答案 1 :(得分:0)

以下是一个例子:

$('#yourElement').on({
        mouseenter: function (){
            clearTimeout(testTimeout);       // [1]
            testTimeout = setTimeout(function(){  // [2]
                ...
            }, numberOfMiliseconds);
        },
        mouseleave: function () { //[3]
            clearTimeout(testTimeout);
        }
    }, '.whereIsYourElement');

[1]当鼠标进入元素时,它会删除先前的超时并再次将其提高[2]。当鼠标离开区域[3]时,它也会删除超时。 这给出了理想的效果,即只有鼠标进入并在元素中停留一段时间才会执行超时。