在 Ajax 启动时禁用 div click 并在 Ajax 完成时重新启用它

2023-12-29

我需要在 Ajax 请求开始时禁用一个 div(以便它不再接收点击),并在 Ajax 完成时重新启用它。我还希望在此过程中显示加载 gif。我认为这可以通过使用来完成ajaxStart and ajaxStop。但是,如果我是正确的,这些将触发任何启动或停止的 Ajax 请求。问题来了。我在一个页面上有多个 div,其中任何一个都可以触发 Ajax 请求。如何禁用/启用单击的“特定 div”以及如何使用以下命令显示/隐藏其相应的加载 gifajaxStart, ajaxStop或任何其他方法。请注意,如果这涉及点击事件的绑定/取消绑定,那么建议的方法需要保持与 jQuery 的兼容性on().

HTML 看起来像这样:

<div class="button white"><img src="loading.gif" /></div>
<div class="button white"><img src="loading.gif" /></div>
<div class="button white"><img src="loading.gif" /></div>

Ajax 的 Javascript 看起来像这样:

$('body').on('click', '.button', function(e){
e.preventDefault();

    $.ajax({
        url     : ajaxVars.ajaxurl,
        context : this,
        type    :'POST',
        async   : true,
        cache   : false,
        timeout : 1000,
        data    : { action : 'test_action' },
        success : function(response) {
            if (response == 1) {
                $(this).toggleClass('white').toggleClass('green');
            }
        },
        error   : function() {
            alert(error);
        }
   });
});

问候,约翰


要禁用按钮,只需更改当前类按钮即可。

你可以使用这个:

$('body').on('click', '.button', function(e){
e.preventDefault();

$(this).removeClass('button').addClass('disabledbutton');

$.ajax({
    url     : ajaxVars.ajaxurl,
    context : this,
    type    :'POST',
    async   : true,
    cache   : false,
    timeout : 1000,
    data    : { action : 'test_action' },
    success : function(response) {
        if (response == 1) {
            $(this).toggleClass('white').toggleClass('green');
            $(this).removeClass('disabledbutton').addClass('button');
        }
    },
    error   : function() {
        alert(error);
    }

   });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Ajax 启动时禁用 div click 并在 Ajax 完成时重新启用它 的相关文章

随机推荐

  • 大多数现代系统中堆栈增长的方向是什么?

    我正在准备一些 C 语言培训材料 我希望我的示例适合典型的堆栈模型 Linux Windows Mac OSX PPC 和 x86 Solaris 和最新的 Unix 中的 C 堆栈朝什么方向发展 堆栈增长通常并不取决于操作系统本身 而是取
  • 全局执行上下文是否可以从执行堆栈中弹出?

    当JS代码开始运行时 全局执行上下文被创建并位于执行堆栈的底部 以 容纳 全局变量对象和 this 如果整个JS代码运行完后执行栈为空 并且没有全局执行上下文 我们如何仍然能够访问全局变量 例如 我正在运行一个带有 JS 代码的 html
  • 一个类可以扩展一个类并实现一个接口吗

    PHP 中的一个类可以同时扩展一个接口和另一个类吗 基本上我想这样做 interface databaseInterface public function query q public function escape s more met
  • 将 log4j 1.x 和 log4j 2 与依赖于 log4j 1.x 的第三方库混合

    我正在维护一个使用 log4j 1 x 和大型代码库的 Maven 项目 log4j 1 x不仅在现有代码中使用 项目所依赖的一些第三方库也使用它 我现在想开始使用 log4j 2 但我想知道是否值得这么麻烦 我知道可以将两者混合使用 参见
  • 在WPF中,我可以在2个按钮之间共享相同的图像资源吗

    我想在 WPF 中创建一个开 关按钮 并且希望它在用户单击它时使用图像更改其外观 如果它是打开的 则切换为关闭 如果它是关闭的 则切换为打开 我将要使用的图像添加到资源中
  • 无法获取店铺名称

    在以前的版本中我用来获取当前商店名称是这样的 router get api app async ctx gt let shop ctx session shop 但是 在新版本中 我无法使用 ctx session shop 获取当前商店名
  • 将实体框架与历史数据结合使用

    我正在 Net 4 0 中构建一个 Windows 应用程序来创建和组织电子项目 该应用程序的主要目的是记录电子元件的供应商信息 零件号 描述 价格等 并将它们组织 关联 到项目 成品 中 要求之一是跟踪任何给定供应商项目 主要是价格 的更
  • Discord“on_member_join”功能不起作用

    我的 on member join 似乎不起作用 我希望我的机器人说出加入服务器的成员的姓名 但它无法检测是否有人加入或离开 import discord from discord ext import commands client co
  • SQL 从“自定义”post_type 中获取 X 个最后条目,计算用户自定义 post_type 的个数

    如果可能的话 我想进入一个查询 最后 4 个不同的用户 排除 ID 1 与 post type custom 订购date or ID DESC 计算每个用户的 自定义 post type 总数 数数 这是一个数据示例 Table Name
  • srand 函数返回相同的值

    嘿伙计们看看这个程序 The craps game KN king page 218 include
  • sysconf(_SC_CLK_TCK) 与 CLOCKS_PER_SEC

    我想知道上述常量的返回值有什么区别 sysconf SC CLK TCK 回报100 CLOCKS PER SEC回报1 000 000 所以 假设我有这个 start clock Process starts here does some
  • 向 RSpec 的默认失败消息添加更多信息?

    我在验证中测试了很多错误的字符串 如下所示 0 3 a xx 11 1 3 00 h h2 h2h m m10 m10m 2hm h2m hm2 2m10h 2m10m 2h10h each do input FactoryGirl bui
  • 测试 celery 任务是否仍在处理中

    如何测试任务 task id 是否仍在处理中celery http celeryproject org 我有以下场景 在 Django 视图中启动任务 将 BaseAsyncResult 存储在会话中 关闭 celery 守护进程 硬 以便
  • 在替换之前对正则表达式中捕获的数字进行计算

    使用正则表达式 我可以找到一堆我想要替换的数字 但是 我想将该数字替换为使用原始捕获数字计算得出的另一个数字 在记事本 中使用替换部分中的一种表达式可能吗 Edit 也许是一个奇怪的想法 但是计算可以在搜索部分完成 生成第二个捕获的数字 该
  • 防止子视图在 UIScrollView 中滚动

    我有一个UIScrollView我想阻止具有某个子视图的子类滚动 而所有其他子视图正常滚动 我能想到的最接近的例子是UITableView右侧的 索引条 在 通讯录 应用程序中查看示例 我猜这是表的子视图 滚动视图 但它不会随着用户滚动而移
  • 如何使用sql server获取一周中的上一个工作日与当前工作日

    我有一个在工作日 周一至周五 运行的 ssis 套餐 如果我在星期二收到文件 后台 DB 它需要前一个工作日的日期并进行一些交易 如果我在周五运行该作业 它必须获取周一的日期并处理交易 我使用以下查询来获取之前的营业日期 Select Co
  • 错误:任务“:app:packageDebug”执行失败。 > !zip.isFile()

    UPDATE 非常感谢 现在至少没有错误了 但它与以前的工作方式 它应该如何工作 仍然相去甚远 现在 数据库看起来 很奇怪 我认为这个 gradle 还是有问题 It should not look like According to th
  • 浏览器不会读取更新的 CSS

    编辑 我真诚的道歉 除了我自己之外 这不是任何问题 我有一个 global css 文件 其中包含正确的内容 但在该文件下面 我包含了另一个包含旧 CSS 的文件 在我的 HTML 的一些内容 捂脸 我有一个正在开发的网站 我正在使用 LE
  • 使用 Python 解析 ping 输出

    您将如何解析 ping 输出 如下所示 root m2m probe1 M2M src ping c 20 q google es PING google es 173 194 34 247 56 84 bytes of data goog
  • 在 Ajax 启动时禁用 div click 并在 Ajax 完成时重新启用它

    我需要在 Ajax 请求开始时禁用一个 div 以便它不再接收点击 并在 Ajax 完成时重新启用它 我还希望在此过程中显示加载 gif 我认为这可以通过使用来完成ajaxStart and ajaxStop 但是 如果我是正确的 这些将触