JQuery 类选择器在removeClass后仍然触发

2024-01-03

我正在创建一个小型投票机制,通过 AJAX 发送快速数据库时间戳。

一系列带有“投票”类别的按钮是投票的触发器,而下面的文本显示该特定项目有多少“投票”。

从单击事件运行 AJAX 方法后,我删除了“投票”类,以便该项目中不能有多个投票。然而我的问题是,即使删除了该类,触发器仍然可以触发并增加尽可能多的选票。

以下是该元素的 HTML:

        <div class="points">
        <img class="vote" src="images/up.gif" alt="'.$idea['id'].'">
        <p class="vote-'.$idea['id'].'">'.$points.' Points</p>
    </div>

这是 jQuery 调用:

    $('.vote').click(function(){
        var iID = $(this).attr('alt');
        var typeString = "id="+iID;
        $.ajax({
            type: "POST",
            url:"vote.php",
            data: typeString,
            success: function (txt){
                $('.vote-'+iID).html('<p>'+txt+' Points</p>');
            }
        }); 
        $(this).attr('src', 'images/voted.gif');
        $(this).removeClass('vote');
    });

您将事件处理程序附加到 DOM 元素,并且它保持不变。你可以

a. set .data('triggered', 1)像这样:

if ( !$(this).data('triggered') ) {
  // do code
  $(this).data('triggered', 1);
}

b.

if ( $(this).hasClass('vote') ) {
   // do code
}

C。使用 .live 而不是 .click,例如$('.foo').live('click', fn)

d.调用代码后手动删除事件处理程序,$(this).unbind('click')作为最后一行,在删除类位之后

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

JQuery 类选择器在removeClass后仍然触发 的相关文章

随机推荐

  • 使用 Google API 恢复电子表格的特定版本

    正如标题所示 我正在尝试找到一种使用 Google Sheets API v4 或 Google Drive API v3 将电子表格恢复到特定版本的方法 这是需要的 因为单元测试 我需要一个测试来在电子表格上执行一些操作 假设删除一行 断
  • UIWebView 加载失败,自定义 URL 方案

    我有一个 UIWebView 正在我的应用程序中处理 OAuth 身份验证流程 OAuth 服务使用的回调 URL 指向我在应用程序中设置的自定义 URL 方案 我们称之为mycustomurlscheme 因此 一旦用户身份验证成功 OA
  • 强制重新加载/阻止 Web Workers 缓存

    我注意到大多数浏览器 尤其是 Chrome 似乎会缓存 Web Worker 脚本 即使您强制页面重新加载 SHIFT F5 等 也是如此 我发现强制更新缓存的唯一可靠方法是将工作脚本的路径输入地址栏中并单独强制重新加载它 显然 在尝试开发
  • Intellij IDEA 中的集合内容从未更新警告

    我创建了一个简单的 Counter 类 public class Counter
  • 如何在控制器中获取数据库上下文

    我一整天都在想办法得到ApplicationDbContext in the ManageController cs默认 MVC 6 项目的 我上网并用谷歌搜索了很多 但似乎没有人遇到与我相同的问题 这可能很简单 但我无法弄清楚 有人有主意
  • GCC 如何决定以什么顺序输出汇编函数?

    阅读 GCC 为我的项目中的 C 文件生成的程序集 我注意到函数在程序集中的输出顺序与它们在源文件中出现的顺序不同 这种重新排序的目标是什么 GCC 使用什么启发法来决定顺序 这只是数据结构保存函数的产物吗 这不是 freorder fun
  • 以正确的方式将经度和纬度坐标转换为地图像素(X 和 Y)

    请看一下我的另一个问题 这个问题做得不正确here https stackoverflow com questions 38818152 converting image x y coordinates to longitude and l
  • 不能从静态上下文引用非静态类[重复]

    这个问题在这里已经有答案了 可能的重复 为什么我会收到 无法从静态上下文引用的非静态变量 https stackoverflow com questions 10301907 why do i get non static variable
  • 使用 RSpec 测试密码长度验证

    我正在编写一些单元测试 以确保用户模型的密码长度不能小于 8 个字符 我从用户模型开始 class User lt ActiveRecord Base validates password length gt minimum gt 90 t
  • 如何使用 dbml 文件连接 oracle 数据库?

    我认为将 Oracle 与 LINQ 结合使用的最佳方法是手动将数据库表映射到 dbml 文件中 我对吗 当我做到了之后 然后呢 如何将数据库与 dbml 文件连接 除了 MSSQL 之外 还有用于数据库的第 3 方 Linq 提供程序 L
  • 将 Git (TortoiseGit) 工具栏添加到 Visual Studio 的解决方案 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人知道如何在 Visual Studio 2010 中创建工具栏以与 Git TortoiseGit
  • 使用java代码更改animateLayoutChanges属性

    我正在开发一个使用布局更改动画的 Android 应用程序 我想知道的是 有没有人知道如何使用java代码更改 andorid animateLayoutChanges 探测器 我目前的价值是 android animateLayoutCh
  • 在函数内调用时使用 png 函数不起作用

    我有一个函数可以执行一些操作 然后根据条件进行绘图 f lt function n rand lt rnorm n no lt seq len n df lt data frame no no rand rand if n gt 10 pn
  • 类型错误:路径必须是字符串或缓冲区 MEAN 堆栈

    我在前端使用 Angular 5 在后端使用 Node 并使用 Mongo 作为数据库 现在我试图将图像保存到数据库 但不断收到此错误 我不知道我是在正面还是背面犯了错误 因为这是我第一次处理文件 我做了我的研究 但它主要指向 Angula
  • 如何覆盖 Apache Flink 中的配置值?

    我正在尝试将 Apache Flink 的指标收集到 Prometheus 中 Flink 文档说我需要将以下行添加到我的 flink conf yaml 中 metrics reporter promgateway class org a
  • 如何在 datagridview 中动态创建列并为其及其行分配标题?

    我正在使用 datagridview 但没有使用任何数据源 我想动态地给它分配值 创建我自己选择的列数和行数并命名它们 另外 我想将图像添加到单元格而不是数据 至于更改列文本 我们可以使用 grid Columns 0 HeaderText
  • 为什么“std::vector”的大小是 16 字节?

    我使用 memcpy 将 std vectors 的内容复制到原始数组 对于 int float double 等数据类型 它运行良好 当我开始复制布尔向量时 我遇到了一个问题 即我得到了奇怪的值 首先 我开始为浮点向量进行测试输出 std
  • EF4:LINQ 2 实体查询在 C# 中有效,但在 VB 中无效

    编辑 我在下面留下了原始问题 并提供了更多上下文和代码来重现问题 下面的简短版本包含了问题的本质 简短版本 下面的查询抛出 System NotSupportedException 无法转换类型 System Linq IOrderedQu
  • VBA 使用 format() 或 CDate() 将字符串转换为日期时出现问题

    如果以前曾问过这个问题 请为我指出正确的方向 我似乎无法用我的谷歌搜索技能找到任何有用的东西 我有以下代码 它读取这样的字符串 停电开始日期 05 10 11 23 59 EST并提取日期信息 即 05 10 11 23 59 sStart
  • JQuery 类选择器在removeClass后仍然触发

    我正在创建一个小型投票机制 通过 AJAX 发送快速数据库时间戳 一系列带有 投票 类别的按钮是投票的触发器 而下面的文本显示该特定项目有多少 投票 从单击事件运行 AJAX 方法后 我删除了 投票 类 以便该项目中不能有多个投票 然而我的