【发布时间】:2013-12-12 23:23:08
【问题描述】:
(我真的不知道如何命名,请随时提出修改建议)
考虑以下示例 html:
<div class="grid">
<div class="item"><span class="icon"></span></div>
<div class="item"><span class="icon"></span></div>
<div class="item"><span class="icon"></span></div>
<div class="item"><span class="icon"></span></div>
<div class="item"><span class="icon"></span></div>
</div>
每个.icon都附有一些jQuery:
<script type="text/javascript">
jQuery('.icon').click(function(){
runAjaxStuff();
displayNewContent();
})
</script>
简而言之,每次用户点击.icon,对应的父.item 将执行AJAX 请求并通过在页面上显示额外的.item 内容来完成。
在这种情况下,如果用户连续快速单击每个.item,则来自先前单击的 AJAX 请求可能仍在等待响应。当然,新的内容也还没有显示出来;然而,几秒钟后,所有的请求都有机会完成,然后用户就会被大量的新内容同时显示出来。
我所追求的是一种在单击 .icon 时简单地停止执行任何先前的 click 绑定的方法,以便最终仅完成最近的单击。
我知道我可以让我的 AJAX 调用同步,但我希望有一种更好的方法,不会占用用户的浏览器。我的 jQuery 已经够用了,但这比我习惯的要深入一些。
【问题讨论】:
标签: javascript jquery ajax