Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在单击onclick后添加延迟_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何在单击onclick后添加延迟

Javascript 如何在单击onclick后添加延迟,javascript,jquery,html,Javascript,Jquery,Html,所以我想添加一个函数,在单击停止垃圾邮件或宏使用后单击以延迟。我通常使用这样的代码 <div onclick="return confirm('question?')>example </div> 它应该能够通过使用setTimeout(函数(){return confirm('question?);},)进行延迟 资料来源: 然而,正如其他人指出的那样,这在阻止垃圾邮件方面并不有效。如果使用setTimeout,您将无法返回确认调用的值,因为它是异步完成的。您需要使用

所以我想添加一个函数,在单击停止垃圾邮件或宏使用后单击以延迟。我通常使用这样的代码

<div onclick="return confirm('question?')>example </div>

它应该能够通过使用
setTimeout(函数(){return confirm('question?);},)进行延迟

资料来源:


然而,正如其他人指出的那样,这在阻止垃圾邮件方面并不有效。

如果使用setTimeout,您将无法返回
确认调用的值,因为它是异步完成的。您需要使用承诺或回调才能使用该值

var时间;
功能确认(问题){
返回新承诺(完成=>{
if(时间)clearTimeout(时间);
time=setTimeout(函数(){
完成(确认(问题));
}, 1000);
})
}

点击我一堆
感谢那些向我提问的人。与其把它放在一边,不如走开,检查一下其他的问题。延迟并不能真正停止垃圾邮件。您应该研究注册点击的时间戳,并将其与当前的时间戳进行比较。我如何才能做到这一点?你能给我举个小例子吗?如果你想在短时间内防止重复开火,你可以用它来代替提问?我怎样才能使它只应用代码?3秒钟后不提问。我的意思是,当他们用宏按下按钮10000次。为了阻止这种情况,我需要这些js。正如@noahnu指出的,您应该能够使用来防止重复触发。@Berke如果用户正在运行一个脚本来按下按钮10000次,那么他们就不能再期待良好的用户体验了。他们使用你的软件的方式是不打算使用的。没有理由处理那个案子。即使你像我在评论中提到的那样使用去记忆,这只是为了意外的重复点击。如果你是这么想的话,这不是一个安全措施。是的,你是对的,也许最好的方法是在点击时使用这个问题。所有代码都是按语法编写的吗?因为它会警告我。@Berke-是的,它是有效的,但它可能会警告你箭头函数中的
。。请随意使用标准函数来代替。。。这只是为了证明什么是标准艺术?对不起因为我真的没有js的信息。。你能告诉我标准的方法吗?我们在这里真的不应该是免费的代码作者,所以,我的想法是我给你你需要的信息,你可以根据需要应用它。如果你不理解函数是如何工作的,我建议你阅读一些教程。但是会是这样的<代码>点击我一堆