Я пишу код JavaScript для выполнения отслеживания гиперссылок. По сути, если вы нажмете на ссылку, она отключит отслеживание в другой системе.
Однако я хочу, чтобы отслеживание запускалось только при первом нажатии.
В данный момент мой обработчик событий запускается при каждомнажмите, и я хочу, чтобы он срабатывал только один раз.
С кодом ниже я использую while loop
. Это работает для первой ссылки, но это означает, что мой обработчик событий не срабатывает, когда я нажимаю на другие ссылки ... Так что он полностью прекращает свою работу.
Не уверен в наилучшем подходе к этому.
Я извлекаю число из значения aria-controls по ссылке, используя event.target
. Просто чтобы объяснить, что я делаю ниже:
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);