【发布时间】:2020-02-15 15:10:00
【问题描述】:
我正在编写一些 JavaScript 代码来执行超链接跟踪。基本上,如果您点击一个链接,它会触发对另一个系统的跟踪。
但是,我只想在第一次点击时触发跟踪。
目前,我的事件处理程序会在每次点击时触发,我只希望它触发一次。
通过下面的代码,我使用的是while loop。这适用于第一个链接,但这意味着当我单击其他链接时,我的事件处理程序不会触发......所以它完全停止运行。
不确定处理此问题的最佳方法。
我正在使用event.target 在链接上从 aria-controls 的值中获取一个数字。只是为了解释我在下面做什么:
var apples = object.apples;
var click = 0;
function sendTrackingData(event) {
if (event.domEvent.target.hasAttribute("aria-controls")) {
// Grab the value of aria-controls attibute
var buttonAriaControlValue = event.domEvent.target.attributes["aria-controls"].value;
//Only send report on the first click click
while (buttonAriaControlValue && click < 2) {
click++;
//Take the last number of the value
var number = buttonAriaControlValue.charAt(buttonAriaControlValue.length-1);
var integer = parseInt(number);
var final = integer + 1
reportingService.sendReport({}, 'ClickReport', 'The value is: ' + final + ' of ' + apples);
}
}
}
fruitLinks.onDOMEvent('click', sendTrackingData);
【问题讨论】:
标签: javascript dom event-handling dom-events