Jquery 如何在鼠标移动后停止ajax请求´;你不能动吗?
我有一个函数,只要鼠标悬停在.postimagepic元素上,它就会每秒发送一个ajax请求 现在的问题是:如果鼠标在30秒内没有移动,我希望ajax请求(可能是setinterval函数)每秒停止发送请求。我所有的尝试都失败了,mousemove.:/你有其他的想法或方法来解决这个问题吗 jQueryJquery 如何在鼠标移动后停止ajax请求´;你不能动吗?,jquery,ajax,Jquery,Ajax,我有一个函数,只要鼠标悬停在.postimagepic元素上,它就会每秒发送一个ajax请求 现在的问题是:如果鼠标在30秒内没有移动,我希望ajax请求(可能是setinterval函数)每秒停止发送请求。我所有的尝试都失败了,mousemove.:/你有其他的想法或方法来解决这个问题吗 jQuery var myInterval; $(".postimagepic").hover(function () { var link = $(this).attr("src")
var myInterval;
$(".postimagepic").hover(function () {
var link = $(this).attr("src").split("/").pop().split(".", 1)[0];
myInterval = setInterval(function () {
$.ajax({
url: 'time.php',
type: 'post',
data: {
'user':'somerandomname',
'topost':link
},
success: function() {
}
});
}, 1000);
}, function () {
clearInterval(myInterval);
});
上面的代码只是引入了另一个变量i,它将检查是否已过30秒,然后为您清除间隔
上面的代码只是引入了另一个变量i,它将检查是否已过30秒,然后为您清除间隔。这可能就是您要查找的: 我使用了mousemove和mouseleave事件。这可能不是最好的实现,您甚至可以使用另一个人的想法来使用计数器,而不是第二次超时
var myInterval = false;
var idleInterval = false;
var counter = 0;
$(function(){
$('.hover_over_me').mousemove(function(){
if(!myInterval) {
clearHoverEvent();
myInterval = setInterval(function () {
$('#console').html(++counter);
}, 1000);
idleInterval = setInterval(function () {
clearHoverEvent();
}, 30000);
}
});
$('.hover_over_me').mouseleave(function(){
clearHoverEvent();
});
});
function clearHoverEvent() {
if(myInterval) {
clearInterval(myInterval);
myInterval = false;
}
if(idleInterval) {
clearInterval(idleInterval);
idleInterval = false;
}
}
这可能就是您正在寻找的: 我使用了mousemove和mouseleave事件。这可能不是最好的实现,您甚至可以使用另一个人的想法来使用计数器,而不是第二次超时
var myInterval = false;
var idleInterval = false;
var counter = 0;
$(function(){
$('.hover_over_me').mousemove(function(){
if(!myInterval) {
clearHoverEvent();
myInterval = setInterval(function () {
$('#console').html(++counter);
}, 1000);
idleInterval = setInterval(function () {
clearHoverEvent();
}, 30000);
}
});
$('.hover_over_me').mouseleave(function(){
clearHoverEvent();
});
});
function clearHoverEvent() {
if(myInterval) {
clearInterval(myInterval);
myInterval = false;
}
if(idleInterval) {
clearInterval(idleInterval);
idleInterval = false;
}
}
效果很好!!谢谢你的帮助!效果很好!!谢谢你的帮助!