【问题标题】:Want to put some seconds delay in calling a function想要在调用函数时延迟几秒钟
【发布时间】:2013-09-13 16:44:16
【问题描述】:

我想在调用函数时延迟几秒钟,这样用户就不会通过快速单击“赞”按钮发送垃圾邮件,并且我的 ajax 调用在后台成功执行。

这样做的原因:(因为我正在对 ajax 文件中的这次点击进行计算。所以如果用户快速点击,它会干扰计数。)

点击按钮后的效果:点赞按钮变为不喜欢按钮

这是我的 Jquery 代码:

<script type="text/javascript">
function like(post_id,post_user_id,user_id)
{
    var last_msg_id         = $('.load_more').attr("id");
        $.post('ajax_files/like.php', {post_id:post_id,post_user_id:post_user_id,user_id:user_id},
        function(data) 
        {
            $("#extra_small_loader_"+post_id).empty().html('<img src="images/extra_small_loader.gif">');            




            if(last_msg_id!='end')
            {
                $.ajax({
                    type: "POST",
                    url: "ajax_files/maintain_posts.php",
                    data: "lastmsg="+ last_msg_id, 
                    beforeSend:  function() 
                        {
                        $('a.load_more').html('<img src="load_more_script/loading.gif" />');

                        },
                    success: function(html)
                        {
                        $("#reload_posts").html(html);
                        }
                });
            }



        });
}
</script>

这是我的 LIKE 按钮的 HTML:

<a href="javascript:void(0);" onclick="like(<?php echo $ps->id; ?>,<?php echo $ps->user_id; ?>,<?php echo $user_id; ?>)">

  <span class="Icon_Text_Font">Like</span>

</a>

这是我的 UNLIKE 按钮代码:

<a href="javascript:void(0);" onclick="unlike(<?php echo $ps->id; ?>,<?php echo $ps->user_id; ?>,<?php echo $user_id; ?>)">

  <span class="Icon_Text_Font">Unlike</span>

</a>

【问题讨论】:

  • 在 beforeSend 中你可以禁用按钮,在成功(或错误时)yopu 可以启用按钮

标签: ajax function call delay seconds


【解决方案1】:

你有没有尝试使用 setTimeout()

例如。

setTimeout(function() { functionName() },5000);

【讨论】:

    猜你喜欢
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多