Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ajax请求一旦在mouseover上发送,就会收到响应,但当我再次在html元素上鼠标悬停时,不应再次发送_Php_Ajax_Jquery - Fatal编程技术网

Php ajax请求一旦在mouseover上发送,就会收到响应,但当我再次在html元素上鼠标悬停时,不应再次发送

Php ajax请求一旦在mouseover上发送,就会收到响应,但当我再次在html元素上鼠标悬停时,不应再次发送,php,ajax,jquery,Php,Ajax,Jquery,我在鼠标悬停事件上发送ajax请求,并收到所需的响应。 但当我再次发送时,将鼠标悬停在发送请求的元素上,请求将再次发送 我不想再次发送请求,而是希望页面使用以前收到的响应 谁来做这件事??这是一个示例代码。->鼠标悬停时调用此函数,不希望在同一鼠标悬停元素上再次发送请求 function showImage(val) { $("#DIV").html('<IMAGESOURCE="../adsd/ajax_loader.gif">'); $.ajax({

我在鼠标悬停事件上发送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;
        }
    });
};
函数showImage(val)
{
$(“#DIV”).html(“”);
$.ajax({
键入:“获取”,
cache:false,
url:“blabla.php?imgID=“+val,
数据:$(this).serializeArray(),
成功:功能(数据){
document.getElementById(“DIV”).innerHTML=数据;
}
});
};

我认为您需要在鼠标上使用

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

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

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
    }
};

如果(!jQuery.data(dom,'sent'){$.ajax({type:“get”,cache:false,url:“blablabla.php?imgID=“+val,data:$(this).serializeArray(),success:function(data){document.getElementById(“DIV”).innerHTML=data;} }); }; } 这是我应该做的吗??我不能让它工作…:(请注意,此方法目前不支持跨平台设置XML文档上的数据,因为Internet Explorer不允许通过expando属性附加数据。--我不是专家,但这听起来不太好。您怎么说???是否包含
jQuery.data(dom,'sent',true)
在您的
成功功能的末尾
?我很长时间没有使用jQuery进行更新。因此,我无法说出当前的情况。几年前,当我这样做时,我在多个浏览器中使用jQuery.data,没有任何问题。我还记得更多:(很好,很有帮助。这个解决方案给了我另一个问题…我将如何显示之前发送的请求上收到的图像??鼠标悬停??谢谢你的帮助,Ibrahim。我不确定你想做什么…但我假设响应将是
元素?在这种情况下,你不需要
else
案例。Otherwise,你能告诉我你到底想要实现什么吗?