ajax请求一旦发送鼠标悬停,响应收到,但不应再次发送鼠标悬停在html元素上再次

时间:2011-08-27 07:16:55

标签: php ajax jquery

我正在鼠标上发送ajax请求,我收到了所需的响应。 但是当我再次发送悬停在发送请求的元素上时,请求再次发送。

我不想再次发送请求,而是希望页面使用之前收到的响应。

谁去做?这是一个示例代码。 - >鼠标悬停时调用此函数,不希望再次在元素上的同一鼠标上发送请求。

function showImage(val)
{
    $("#DIV").html('<IMAGESOURCE="../adsd/ajax_loader.gif">');

    $.ajax({
        type        : "get",
        cache   : false,
        url     : "blabla.php?imgID="+val,
        data        : $(this).serializeArray(),
        success: function(data) {
            document.getElementById("DIV").innerHTML = data;
        }
    });
};

2 个答案:

答案 0 :(得分:1)

在收到响应时将变量设置为一个值,并在发送请求之前检查该变量。

var response = false;
function showImage(val)
{
    $("#DIV").html('');
    if (response == false) {
        $.ajax({    
            type    : "get",
            cache   : false,
            url     : "blabla.php?imgID=" + val,
            data    : $(this).serializeArray(),
            success: function(data)
            {
                document.getElementById("DIV").innerHTML = data;
                response = true;
            }            
        });
    } else {
        // What to do if the request was sent before
    }
};

答案 1 :(得分:0)

我认为您需要在鼠标悬停时使用jQuery.data()

if(!jQuery.data(dom, 'sent')){
  //take action
  jQuery.data(dom, 'sent', true);// do it on success
}