延迟

时间:2016-04-05 08:04:35

标签: javascript jquery javascript-events

如果用户使用鼠标悬停在元素上1.5秒,我想翻译值。我写了一个小jQuery函数,但我不知道如何在1.5秒后验证用户是否在元素上。

$(document).on('mouseover', '.search-translate', function(e) {
    setTimeout(function() { translate(e, this); }, 1500);
});

function translate(pEvent, pThis)
{
    if(pEvent.currentTarget == ???.currentTarget)
    {
        $.ajax(.....);
    }
}

有人有想法吗?

2 个答案:

答案 0 :(得分:0)

使用此代码段....



$(document).on('mouseover', '.search-translate', function(e) {
			var obj=this;
			setTimeout(function() { translate(e, obj); }, 1500);
		});

		function translate(pEvent, pThis)
		{
			alert(pEvent+" : "+pThis);
		}




答案 1 :(得分:0)

如果我将鼠标悬停在setTimeout start上,如果我将鼠标移出,则会取消setTimeout事件。

var tTimeout;

function translate(pEl)
{
    ....    
}

$(document).ready(function() {  
    $(document).on('mouseover', '.search-translate', function(e) {
        var el = this;

        tTimeout = setTimeout(function() { translate(el); }, 1500);
});

$(document).on('mouseout', '.search-translate', function() {
    clearTimeout(tTimeout);
});