我有AJAX请求,它从远程文件中获取数据并显示在页面上的div中。当用户将鼠标悬停在链接上时,将调用AJAX并显示带数据的div,当鼠标移出链接时,它会消失。 div会立即显示,但是当鼠标移出时,将鼠标移出并隐藏div之间会有大约5秒的延迟。
我认为这与阻止隐藏功能的AJAX请求有关,因为当我删除了AJAX请求时,div立即隐藏。
当鼠标从链接中删除时,我可以做些什么来中止,杀死或忽略AJAX,无论如何都隐藏div?
这是我到目前为止的代码:
$(function(){
var showPopup = function(){
$.ajax({
type: "GET",
url: "/process.cfm",
data: "id=" + 1,
success: function(data){
$(".profilePopup").html(data);
if ($(data).find(".profileResult").length) {
var text = $(data).find(".profileResult").html();
$(".profilePopup").html(text);
}
}
});
$(".profilePopup").show();
}
var hidePopup = function(){
$(".profilePopup").hide();
}
$("#username").mouseover(showPopup);
$("#username").mouseout(hidePopup);
});
答案 0 :(得分:3)
试试这个:
var xhr = $.ajax({
type: "POST",
url: "some.php",
data: "name=Somename",
success: function(msg){
alert( "Data Saved: " + msg );
}
});
//kill the request
xhr.abort()
答案 1 :(得分:0)
你可以使用jxhr对象中止ajax请求:
http://api.jquery.com/jQuery.ajax/#jqXHR
类似的东西:
var jxhr_object = $.ajax({
url: "some.php",
success: function(){
do something
}
});
//kill the request
jxhr_object.abort()
答案 2 :(得分:0)
var xhr = $.ajax({
type: "GET",
url: "/process.cfm",
async: true,
data: "your data",
success: function(msg){
alert( "Data Saved: " + msg );
}
});
//kill the request
xhr.abort()
这不会让您的浏览器冻结。
async:true,