使用setTimeout单击
Delay Javascript button onClick using setTimeout
我有一个延迟按钮点击的问题。我已经通过stackoverflow搜索过了,我找到了几个答案,setTimeout很容易,但我不能让它在我正在做的工作中工作。下面是代码示例:
AJAX在提交按钮上向数据库提交数据,单击
<script>
$(function () {
$('form').on('submit', function (e) {
$.ajax({
type: 'post',
url: 'post.php',
data: $('form').serialize(),
});
e.preventDefault();
});
});
</script>
<<p> 推杆式代码/strong> <script>
$(function() {
var pusher = new Pusher('pusher')
var activityChannel = pusher.subscribe('stream');
var activityMonitor = new PusherActivityStreamer(activityChannel, "#current");
var examples = new ExampleActivities(activityMonitor, pusher);
$("#broadcast").click(function(){
activityMonitor.sendActivity('broadcast');
});
$("#submit").click(function(){
activityMonitor.sendActivity('submit');
});
});
</script>
<<p> HTML按钮/strong> <input id="submit" name="submit" type="submit" value="Submit" onclick="addMEM()"><br>
<button id="broadcast">Broadcast</button>
提交按钮上的onclick="addMEM()"用于另一个脚本。这是一个很忙的按钮。
点击Submit ajax脚本将数据推送到post。php然后提交到数据库。通过相同的Submit点击,push代码被触发,最终将提交的数据从数据库中提取出来,并将其广播给连接的每个人。
我遇到的问题是,Submit将数据提交给数据库,并同时触发从数据库中提取的push。75%的情况下,push代码会在Submit提交数据之前尝试从数据库中提取数据。
我把setTimeout放在我能想到的任何地方,只是不能延迟pushher代码。有什么建议吗?如果Submit和Broadcast按钮延迟,也没关系。如果点击Submit会延迟AJAX代码或者onclick=addMEM()
很抱歉把事情弄得这么复杂。这是一个长期项目的最后一步,如果我能得到这个工作,然后它所有的CSS,数据输入和数学从这里。
我建议传递一个success回调给jQuery。触发广播的Ajax 方法,如下所示:
$.ajax({
type: 'post',
url: 'post.php',
data: $('form').serialize(),
success: function () {
activityMonitor && activityMonitor.sendActivity('broadcast');
}
});
setTimeout的解决方案是这样的:
$("#broadcast").click(function(){
setTimeout(function () { activityMonitor.sendActivity('broadcast') }, 2000);
});
相关文章:
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 单击F5时如何停止页面加载
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 单击jquery清除输入值
- 单击按钮以等待单击按钮
- 在单击href链接的同时下载文件
- 单击顶部导航时如何进行向下滚动效果(向下滑动).
- 使图像在单击时展开到不大于浏览器
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 为什么在模糊事件处理程序中添加setTimeout会修复“;掩蔽”;另一个单击处理程序的
- 延迟 href 单击,但不使用 SetTimeout
- 来自 setTimeout 的 Jquery 单击处理程序
- 防止ajax回调settimeout每次单击执行一次以上
- 单击(jQuery)时暂停setTimeout
- 将事务与setTimeout冲突,然后单击
- 停止SetTimeout在鼠标上并单击
- 使用setTimeout单击
- setTimeout()启动onload而不是onclick.如何在单击后才能启动它