JavaScript只允许用户点击一次

Joh*_*ohn 1 javascript jquery

我需要将其转换为vanilla JavaScript,只允许用户点击一次并防止在Google Analytics中记录多次点击.

jQuery的

$('.test-link').one("click", function() {
    $(this).click(function() {
        return false;
    });
});

<a class="test" data-label="track-this-link">Click</a>
Run Code Online (Sandbox Code Playgroud)

我不能使用jQuery,所以任何帮助都会很棒!谢谢.

Cer*_*nce 8

在现代浏览器中,addEventListener接受一个options可以包含once属性的对象- 如果设置为true,则侦听器将只触发一次,之后将自动删除:

document.querySelector('.test').addEventListener(
  'click',
  () => {
    console.log('listener running');
    return false;
  },
  { once: true }
);
Run Code Online (Sandbox Code Playgroud)
<a class="test" data-label="track-this-link">Click</a>
Run Code Online (Sandbox Code Playgroud)

没有once,请手动执行removeEventListener:

const test = document.querySelector('.test');
function listener() {
  console.log('listener running');
  test.removeEventListener('click', listener);
  return false;
}
test.addEventListener('click', listener);
Run Code Online (Sandbox Code Playgroud)
<a class="test" data-label="track-this-link">Click</a>
Run Code Online (Sandbox Code Playgroud)