首先,感谢您阅读。
我确实遇到了停止执行函数的问题,我会尝试解释我想要做什么以及我是如何尝试做的。
例如,我在元素上绑定了一些事件a or button
,我希望用户不会再次单击它,我的意思是他可以单击它,但在一段时间内(比如一秒钟)不会调用所有操作。
所以,这里有一些例子:
在 HTML 中
1st example
<ul>
<li><a href="some url" class='button'>Click me</a></li>
<li><a href="some url" class='button'>Click me</a></li>
<li><a href="some url" class='button'>Click me</a></li>
</ul>
2nd example somewhere else:
<section id='someid'>
some info
some articles - doesn't matter
<button class='button iLoadComments'>Load more comments</button>
</section>
在 JavaScript 中:
$("ul").on("click","a.button",function(){
... here some code or ajax request, whatever
return false;
});
$("section").on("click","iLoadComments",function(){
... some ajax request
return false;
})
我不想让执行它。我想用 1 个函数覆盖所有代码..
所以,我做了什么:全局我定义了新的事件侦听器并将属性添加disabled
到该元素
$("body").on("mousedown", ".button", function(e){
var $this=$(this);
if ($this.attr("disabled")) {
var event = e || window.event;
if (event.stopPropagation) {
event.stopPropagation();
} else {
event.cancelBubble = true;
}
event.preventDefault();
setTimeout(function () {
$this.removeAttr("disabled");
}, 1000);
return false;
}else{
$this.attr("disabled", true);
}
});
但问题是被删除的函数将以任何方式执行((
有人可以帮忙吗,这是更好的做法吗?或纠正这种方式的方法?