$("#prevPage").live("click",function(e) {
.................
});
例如,当用户已经点击了prevPage
,里面的语句正在运行,如果用户立即点击 ,它会再次触发。但是,我希望只有在它里面的所有语句都完成执行之后才触发点击事件,如何实现呢?
$("#prevPage").live("click",function(e) {
.................
});
例如,当用户已经点击了prevPage
,里面的语句正在运行,如果用户立即点击 ,它会再次触发。但是,我希望只有在它里面的所有语句都完成执行之后才触发点击事件,如何实现呢?
这个或类似的东西怎么样:
<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>
简单的“屏蔽”来阻止多呼叫场景。
然后在元素上设置一个标志以检查它是否可点击。
$("#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;
}
});
使用jquery的unbind功能
$("#prevPage").unbind("click");
你的任务完成后
$("#prevPage").bind("click",function(){....your code here....});
设置您的事件触发的变量
var prevPageEventTriggered = false ;
并将其设置为ture
事件触发时
prevPageEventTriggered = true;
然后在单击事件处理函数中为此添加条件
$("#prevPage").live("click",function(e) {
if ( prevPageEventTriggered ) {
return false;
}
// your code goes here
// ....
});
如果它已完成执行,您可以将其设置为false
. 希望这会有所帮助
unbind()将为您完成工作。
另一种方法可能是使用detach()。当您的进程正在执行分离按钮并且当您的进程完成执行时,使用 reattach ()来取回按钮。我建议使用unbind()。