Ale*_*lex 20 html javascript dom-events
我的按钮上有用于Google Analytics(分析)的代码。我只需要执行一次它,这样用户就不能通过多次按下按钮来更改统计信息。我尝试了类似主题的解决方案,但是它们不起作用。请帮忙。这是我的代码。
<script>
function klikaj(i) {
gtag('event', 'first-4', {
'event_category' : 'cat-4',
'event_label' : 'site'
});
}
document.body.addEventListener("click", klikaj(i), {once:true})
</script>
<div id="thumb0" class="thumbs" onclick="klikaj('rad1')">My button</div>
Run Code Online (Sandbox Code Playgroud)
Nen*_*nad 11
onclick尝试执行以下操作,删除按钮上的属性并通过JavaScript注册侦听器:
<div id="thumb0" class="thumbs"
style="border: 1px solid; cursor: pointer; float: left">
My button
</div>
<script>
function klikaj(i) {
console.log(i);
}
document.getElementById('thumb0')
.addEventListener("click", function(event) {
klikaj('rad1');
}, {once: true});
</script>Run Code Online (Sandbox Code Playgroud)
如果您的浏览器不支持该{ once: true }选项,则可以手动删除事件侦听器:
<div id="thumb0" class="thumbs"
style="border: 1px solid;cursor: pointer;float:left">
My button
</div>
<script>
function klikaj(i) {
console.log(i);
}
function onClick(event) {
klikaj('rad1');
document
.getElementById('thumb0')
.removeEventListener("click", onClick);
}
document
.getElementById('thumb0')
.addEventListener("click", onClick);
</script>Run Code Online (Sandbox Code Playgroud)
我建议设置一个变量并检查其值。
<script>
var clicked = false;
function klikaj(i) {
if (clicked === false) {
gtag('event', 'first-4', {
'event_category' : 'cat-4',
'event_label' : 'site'
});
}
clicked = true;
}
...
</script>
Run Code Online (Sandbox Code Playgroud)
或删除其他人建议的onclick事件,
<script>
function klikaj(i) {
gtag('event', 'first-4', {
'event_category' : 'cat-4',
'event_label' : 'site'
});
document.getElementById('thumb0).onclick = undefined;
}
...
</script>
Run Code Online (Sandbox Code Playgroud)
请注意,once: true不幸的是,IE和Edge不支持该功能。参见https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
小智 7
您可以这样使用removeAttribute():document.getElementById('thumb0').removeAttribute("onclick");
或者您可以让函数返回false,如下所示: document.getElementById('thumb0').onclick = ()=> false
| 归档时间: |
|
| 查看次数: |
1217 次 |
| 最近记录: |