Javascript 在当前方法上禁用实时事件
在视图中,我有以下类Javascript 在当前方法上禁用实时事件,javascript,jquery,ruby-on-rails,coffeescript,Javascript,Jquery,Ruby On Rails,Coffeescript,在视图中,我有以下类 .class{"data-id" => time.id} 在视图的末尾,我启用了live click事件 $('.class').live("click", function() { window.orc.time.stopCount(); window.orc.time.whenClicked(#{class.id}, #{class.time}, # {class.start});}); 在coffeescript中,我有以下功能 ti
.class{"data-id" => time.id}
在视图的末尾,我启用了live click事件
$('.class').live("click", function() {
window.orc.time.stopCount();
window.orc.time.whenClicked(#{class.id}, #{class.time}, #
{class.start});});
在coffeescript中,我有以下功能
time.whenClicked = (class.id, time_dur, time_start) ->
ct = time_entries.to_time(time_dur, time_start)
$("div[data-id=#{time_id}]").addClass "ajax"
$("div[data-id=#{time_id}]").html("<input id=\"editbox\" size=\"8\" type=\"text\" value=\"#{ct}\">")
$("#editbox").bind "keyup", (event) ->
...
它可以工作,但是单击事件只有在我刷新页面后才会重新启用,这不是我需要的
是否有一种在函数执行之前禁用单击事件的解决方案 不要禁用处理程序。只需实现一个布尔标志,就可以知道该方法是否已经在运行。在这种情况下,您可以立即从处理程序返回:
var isBusy = false;
$('.class').live('click', function(){
if(isBusy) return;
isBusy = true;
window.orc.time.stopCount();
window.orc.time.whenClicked(/* some params */);
isBusy = false;
});
var isBusy = false;
$('.class').live('click', function(){
if(isBusy) return;
isBusy = true;
window.orc.time.stopCount();
window.orc.time.whenClicked(/* some params */);
isBusy = false;
});