我已经构建了一些函数,用jquery触发点击事件上的ajax事件,问题是,当你点击足够快时 - 事件会被触发两次,这不应该发生:)。我试图通过添加标志变量来避免这种情况,但是当你真的很快它就不起作用了。以下是我的功能示例:
action_flag = 0;
$('#available_clicks').delegate('.available_click', "click", function(ev)
{
if(action_flag==1)
{
ev.stopPropagation();
return;
}
action_flag=1;
somefunction();
});
在某些功能结束时是action_flag = 0指令。 你能为我提供一些解决方案,当用户点击足够快时,它可以防止双重触发吗? :)
修改
现在我这样做:
$('#available_clicks').delegate('.available_click', "click", function(ev)
{
$("#available_clicks").on("click", ".available_click",somefunction()));
$("#available_clicks").off("click", ".available_click");
});
但是第二次点击后出现错误:/
答案 0 :(得分:2)
查看有助于您的.one()
jQuery
功能。
说明:将处理程序附加到元素的事件。每个元素最多执行一次处理程序。
或强>
您可以使用.off();
说明:删除事件处理程序。
修改强>
$('#available_clicks').on("click",'.available_click', function(ev)
{
$("body").off("click", ".available_click");
});
答案 1 :(得分:0)
你也可以禁用按钮(这是函数中的第一个语句),并且在ajax调用成功后,你可以再次启用它。