0

我正在尝试找到一种方法来制作导致 onclick 事件的类。例如,以表格为例。我想给那个表单域一个类。每次我将某个类添加到字段时,我都希望它为表单字段生成一个 onclick 命令。

我这样做的原因是我想为每个表单字段添加分析跟踪,但我使用的是重力表单,所以我希望能够在不编辑每个表单的情况下即时创建表单。如果我可以创建一个名为 .name 的类并让该类将其添加onClick="mixpanel.track('Name_field');" 到表单输入中,那么我可以跟踪用户每次在表单内单击以填写它。通过这种方式,我可以跟踪表单的每个步骤并查看用户何时离开。

所以列表是

.name  that would add onClick="mixpanel.track('Name_field');"
.email  that would add onClick="mixpanel.track('Email_field');"
.phone  that would add onClick="mixpanel.track('pnone_field');"

我希望这是有道理的。谢谢你提供的所有帮助。我对 javascript 还很陌生,所以请放轻松。html 和 css 我是专业人士,但 javascript 是我要攀登的下一座山。

4

1 回答 1

1

委托会更有效率,因此您只有一个事件处理程序:

var f = function (e) {
  e = e || window.event;
  var t = e.srcElement || e.target, m;
  while (t !== this && (!t.className || !(m = t.className.match(/\b(name|email|phone)\b/)))) {
    t = t.parentNode;
  }
  if (m) {
    switch (m[0]) {
      case "name": mixpanel.track("Name_field"); break;
      case "email": mixpanel.track("Email_field"); break;
      case "phone": mixpanel.track("phone_field"); break;
    }
  }
};
if (document.body.attachEvent) {
  document.body.attachEvent("onclick", f, true);
} else {
  document.body.addEventListener("click", f, true);
}
于 2012-12-29T04:52:33.857 回答