首先,像往常一样,对不起,如果这个答案存在,但我搜索了,并且找不到我正在寻找的答案。
我尝试仅在一次上跟踪输入复选框上的操作,也就是说,如果我有一个复选框列表,我只想跟踪用户是否点击了一次,所以即使他们取消选择了一个chackbox,他们也只检查了第一次点击是否被跟踪。
我知道有一种方法可以检查JS是否通过" querySelector()点击了一个复选框.input"类型调用,但我失去了如何使整个圆圈只有一次跟踪事件触发,无论用户切换多少次。
考虑以下标记:
<li class="js-form-item form-item form-item__item form-item--checkbox__item">
<span class="checkbox">
<input view_id="explore" display_id="explore_main" data-drupal-selector="edit-category-title-app" type="checkbox" id="edit-category-title-app" name="category[title_app]" value="title_app" class="form-checkbox form-item__textfield">
<label for="edit-category-title-app" class="checkbox__label">
<span class="checkbox__faux"></span><span class="form-item__label">App</span>
</label>
</span>
</li>
&#13;
非常感谢任何帮助。请给我香草JS。谢谢。
答案 0 :(得分:-1)
附加事件监听器并在触发时将其删除。
function addEventListenerOnce(target, type, listener) {
target.addEventListener(type, function fn(event) {
target.removeEventListener(type, fn);
listener(event);
});
}
addEventListenerOnce(document.getElementById("edit-category-title-app"), "change", function (event) {
alert("You'll only see this once!");
// DTM call here
});
请参阅此post