当用户将鼠标悬停在 div 上时,我想在 div 中显示 AJAX 调用的结果(即用 AJAX 调用的结果替换 div 内容)。基本功能是当用户将鼠标悬停在该点上时,将页面上的点替换为包含来自服务器的内容的圆圈,并在用户停止悬停时再次显示该点。页面上可能有很多点,每个点在悬停时都有不同的圆圈内容。
我让它工作了,但我注意到当用户将鼠标悬停在给定的 div 上时,AJAX 调用被重复调用。如何防止重复调用?
我尝试了各种用法,.one
但.unbind('mouseenter', 'mouseleave')
还没有让它正常工作。
这就是我现在所拥有的(悬停行为适合用户,但会导致对后端的重复调用)。
<div class="box1" s='<%=value1 %>' t='<%=value2 %>'>
<div id="circle" style="display: none;">
</div>
<div class="dot" id="dot">
<img src="orangeDot.png" />
</div>
</div>
和脚本:
<script type='text/javascript'>
$(document).ready(function () {
$(".box1").hover(function () {
var source = $(this).attr('s');
var target = $(this).attr('t');
$('#dot').attr("style", "display: none;");
$('#circle').hide().load('/GetCircle?s=' + source + '&t=' + target).show();
}, function () {
$('#circle' + divid).attr("style", "display: none;");
$('#dot' + divid).attr("style", "display: inline-block;");
});
});
</script>