在父元素或子元素中使用onclick事件?

时间:2016-11-17 14:16:35

标签: javascript html google-analytics

了解我的情况的一个小故事: 监视GA内容的同事告诉我,在我们的网站上试图跟踪有多少人点击什么时,它并没有被解雇。现在,我无法访问Google帐户以检查我的更改是否有效,而且她目前生病了(并且我的公司不希望因任何原因共享GA帐户)< / p>

所以我想我在等待的时候来这里问。目前GA是这样建立的,我想知道onclick的位置是否重要?在这种情况下它应该在锚标签中吗?或者把它留在那个div中好吗?

HTML:

<table>
  <tr>
     <td><div onclick="ga('send', 'event', 'Participant_Centre', 'Click', 'PledgeSheet');"><a href="this_tool" target="_blank">Pledge Sheet</a></div></td>

     <td><div onclick="ga('send', 'event', 'Participant_Centre', 'Click', 'StepByStepGuide');"><a href="this_tool" target="_blank">Step by Step Guide</a></div></td>

  </tr>
  <tr>
    <td><div onclick="ga('send', 'event', 'Participant_Centre', 'Click', 'SampleBudget');"><a href="this_tool" target="_blank">Sample Budget</a></div></td>
    <td><div onclick="ga('send', 'event', 'Participant_Centre', 'Click', 'LawnSign');"><a href="this_tool" target="_blank">Lawn Sign</a></div></td>
  </tr>
  <tr>
    <td><div onclick="ga('send', 'event', 'Participant_Centre', 'Click', 'EventPlanningChart');"><a href="hthis_tool" target="_blank">Event Planning Chart</a></div></td>
    <td><div onclick="ga('send', 'event', 'Click', 'ParticipantCentre', 'FundraisingThermometer');"><a href="hthis_tool" target="_blank">Fundraising Thermometer</a></div></td>
  </tr>
</table>

我不知道是谁用这种方式制作或设置的,但对我来说看起来不对,主要是因为布局问题我没有将div放在td内。

我改变它的是:

HTML:

<div class="container">
   <div class="col-lg-12">
      <div class="col-md-3">
        <a href="this_tool" target="_blank" onclick="ga('send', 'event', 'Participant_Centre', 'Click', 'PledgeSheet');">Pledge Sheet</a>
      </div>
      <div class="col-md-3">
        <a href="this_tool" target="_blank" onclick="ga('send', 'event', 'Participant_Centre', 'Click', 'StepByStepGuide');">Step by Step Guide</a>
          </div>
[...]

这是一个更好的设置吗?这可能就是为什么它没有被解雇? GA代码本身是正确的,因为我们以前用过其他页面,那些页面设置有点不同,像这样(但仍然针对子元素跨度):

        <li data-toggle="collapse" data-target=".navbar-collapse">
                            <a class="navLink" href="website" target="_blank"><span class="navTextWhite" onclick="ga('send', 'event', 'VolunteerHomepage', 'navbar', 'signup');">Sign me up!</span></a>
                        </li>

因为我看到了^我想知道onclick是否在GA跟踪的父元素或子元素中是否重要。

感谢您的时间!

1 个答案:

答案 0 :(得分:1)

onClick应该在您要跟踪的元素上,即<a href>标记。

如果它在div上,当div中有一个点击时,事件将会触发,这可能不一定在<a href>标签上。请参阅下面的代码段中的两个元素作为示例。点击第二个<div>上的任意位置即可触发该事件。

  function ga() {
    console.log(arguments);
  }
.col-12 {
  width: 100%;
  min-height: 150px;
  background-color: #aff;
  padding: 20px;
}

.col-6 {
  width: 50px;
  height: 50px;
  background-color: #bbb;
  margin: 10px;
  padding: 20px;
  float: left;
}
  <div class="top-container">
  <div class="col-12">
    <div class="col-6">
      <a href="#" onclick="ga('send', 'event', 'Participant_Centre', 'Click', 'PledgeSheet');">Pledge Sheet</a>
    </div>
    <div class="col-6" onClick="ga('send', 'event', 'Participant_Centre', 'Click', 'PledgeSheet2');">
      <a href="#">Pledge Sheet 2</a>
    </div>
  </div>
</div>

您的跟踪代码可能无法正常运行,因为一旦新页面开始加载,网络浏览器将停止在当前页面上执行JavaScript。 API文档的Sending Data to Google Analytics部分提供了有关如何确保事件成功记录的详细信息。