javascript - 在 jQuery 中,如果我不能使用 'this' ,如何从属性中获取 id ?

标签 javascript jquery html ajax jquery-plugins

感谢您查看我的问题,问题如下:

我正在使用名为 Inline inline affirm 的 jQuery 插件基本上只是要求用户确认(是或否)他们正在执行的操作。

这是插件的基本用法:

HTML:

<li class="msg-li-delete" data-msgid="<?php echo $msg_id_att; ?>">
          <div class="affirm light"
               data-id="<?php echo $msg_id_att; ?>"
               data-title="delete"
               data-question="are you sure?" style="display:inline-block;"></div></li>

JS:

$(".affirm").inlineAffirm({
    callback : function(ele){
        var msg_id_conf = $(".affirm").attr("data-id");
        delete_private_msg(msg_id_conf);
      }
  });

问题是我试图从 anchor 标记中获取唯一的 id,以便我可以调用 delete_private_msg 函数并将 id 作为参数,即 delete_private_msg 函数将与 PHP 进行一些 ajax 交互来删除消息。

无论我点击哪个 anchor ,删除的项目始终是第一个。

所以我尝试了这个:

  $(".affirm").inlineAffirm({
      var thisid = $(this).attr("data-id");
        callback : function(ele){
            var msg_id_conf = thisid;
            delete_private_msg(msg_id_conf);
          }
      });

但是我在控制台中收到以下错误:

126 Uncaught SyntaxError: Unexpected identifier

对此的任何帮助将不胜感激,我真的希望这是可以理解的。

最佳答案

不确定它是否有效,但如果在 onclick 处理程序中调用回调,那么这应该有效

$(".affirm").inlineAffirm({
    callback : (ele) => {
        var msg_id_conf = $(this).attr("data-id");
        delete_private_msg(msg_id_conf);
      }
  });

注意:这是 ES6 功能

关于javascript - 在 jQuery 中,如果我不能使用 'this' ,如何从属性中获取 id ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42657601/

相关文章:

javascript - jquery mobile pageinit 没有看到 div

javascript - WordPress:当仅存在主机名时如何在插件中加载javascript

javascript - 使用条件语句更改div的背景颜色

javascript - 使按钮的宽度与高度相同

javascript - Bable 只生成 js 文件(在 dist 文件夹中),而不生成项目目录中的其他文件(如 html、css ..)。我正在使用 "build":"babel source -d dist"

jQuery Ajax POST 不成功

javascript - 将 javascript 绑定(bind)到提交按钮时遇到问题

javascript - 在 JS 中求解 mod 方程

javascript - 在可视化图表容器中选择数据

java - 如何在浏览器中访问第 3 方 cookie?