批量给多个按钮绑定了ajax事件,多个按钮公用一个ajax方法。但是传递参数不一样,怎么做能防止每个按钮重复触发ajax请求
<a href="javascript:;" class="btn">按钮1</a>
<a href="javascript:;" class="btn">按钮2</a>
<a href="javascript:;" class="btn">按钮3</a>
<a href="javascript:;" class="btn">按钮4</a>
<script>
$('.btn').click(function(event) {
var self = $(this),
clicked = self.data('clicked')
if (clicked) {
return alert('已点击过');
}
self.data('clicked', 'true')
alert(self.text());
});
</script>
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
给每个按钮绑定一个 ajaxStart 事件,每次刚开始请求 AJAX 的时候给 body 或者任意一个元素(只要大家都能访问到就行,成为监测元素)添加一个 ajax 属性为 true,在请求成功的回调函数里把这个元素的 ajax 属性改为 false。
点击按钮时判断一下那个监测元素的 ajax 属性,如果为 true 说明目前有同类型 ajax 在进行,弹出相关提示;如果是 false 就可以正常发送请求。