我正在鼠标上发送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;
}
});
};
答案 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
}