我已经构建了一些函数,使用 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");
});
但是第二次点击后出现错误:/
最佳答案
看看 .one()
jQuery
函数会对您有所帮助。
Description: Attach a handler to an event for the elements. The handler is executed at most once per element.
或
您可以使用.off();
Description: Remove an event handler.
编辑
$('#available_clicks').on("click",'.available_click', function(ev)
{
$("body").off("click", ".available_click");
});
关于javascript - 如何阻止第二个 onClick 事件触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15476657/