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

イベント ハンドラーが 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 に答える