$("#prevPage").live("click",function(e) {
.................
});
例如,当用户已经点击了prevPage时,其中的语句正在运行,如果用户立即点击它,它将再次触发。但是,我想只在事件内部的所有语句都完成执行后才会触发click事件,如何实现呢?感谢。
答案 0 :(得分:2)
这个或类似的东西怎么样:
<script type="text/javascript">
// disable command while function is being executed.
var sample = {
isExecuting : 0,
doWork : function (e) {
if (sample.isExecuting === 1) return;
sample.isExecuting = 1;
// do work -- whatever you please
sample.isExecuting = 0; // say: I'm done!
}
};
// live or bind
$("#prevPage").bind("click",function(e) {
sample.doWork(e);
});
</script>
简单的“屏蔽”来阻止多次调用场景。
答案 1 :(得分:1)
然后在元素上设置一个标志以检查它是否可点击。
$("#prevPage").on("click",function(e) {
e.preventDefault();
//get the clickable attribute
//if it's not existent, its undefined hence "false"
var unclickable = this.unclickable;
//if it's not unclickable (it's clickable)
if(!unclickable){
//make the flag unclickable
this.unclickable = true;
//do stuff
//reset it back the way it was after operations
this.unclickable = false;
}
});
答案 2 :(得分:0)
使用jquery的unbind函数
$("#prevPage").unbind("click");
任务完成后
$("#prevPage").bind("click",function(){....your code here....});
答案 3 :(得分:0)
设置事件触发的变量
var prevPageEventTriggered = false ;
并在事件触发时将其设置为ture
prevPageEventTriggered = true;
然后在单击事件处理函数
中添加条件$("#prevPage").live("click",function(e) {
if ( prevPageEventTriggered ) {
return false;
}
// your code goes here
// ....
});
如果已完成执行,您可以将其设置为false
。希望这会有所帮助
答案 4 :(得分:0)
unbind()将为您完成工作。
替代方法可能就像使用 detach()一样。当您的进程正在执行时,请分离按钮,当您的进程执行完成时,使用 reattach()返回按钮。 我建议使用 unbind()。