防止多次点击直到记录被删除

Posted

技术标签:

【中文标题】防止多次点击直到记录被删除【英文标题】:Preventing multiple clicks till record is deleted 【发布时间】:2012-03-11 15:30:35 【问题描述】:

我有一个 html 表格。对于每一行,数据库中都有一条记录,在每一行我都有一个删除按钮(图像图​​标)。

删除时我使用 Ajax 请求从数据库中删除记录 成功后,我会显示一条消息,然后从表中隐藏()/删除()行。

它工作正常。 但如果我在多行上单击真正的 FAST,记录会被删除,但仍会显示某些行。

我的点击功能附加到一个类

$(".tog").click(function(e) ...

我已经阅读了关于 jQuery 的“toggleClass()、delay()”,这些都不起作用。

有什么想法吗?

【问题讨论】:

【参考方案1】:

您可以在 ajax 请求进行时使用http://jquery.malsup.com/block/#demos 插件。

$.ajaxSetup(
    cache:false,
    beforeSend: function() 
       $('#content').block( 
              message: ''
            ); 
    ,
    complete: function()
        $('#content').unblock(); 
    ,
    success: function() 
    ); 

用你的主 div ID 替换 #content

【讨论】:

【参考方案2】:

不推荐,但使用Jquery.ajax,您可以使用async:false 选项。

这样,用户将无法在浏览器上执行任何操作,但浏览器可能会暂时显示为挂起。

您还可以考虑向用户显示overlay,直到您的请求完成。这样浏览器不会被挂起,您也可以向用户显示一些正在进行的消息。

【讨论】:

【参考方案3】:

在函数中点击你禁用事件

$(".tog").click(function ()  $(this).unbind() ... 

必要时激活

【讨论】:

以上是关于防止多次点击直到记录被删除的主要内容,如果未能解决你的问题,请参考以下文章

如何防止多次快速点击 UITableView 的编辑按钮导致应用程序崩溃?

Android 如何判断多次点击

Vue中防止按钮的多次点击

如何防止使用php自动多次点击网站?

如何防止多次点击/点击的默认处理?

yii防止延迟用户多次点击按钮重复提交数据