我可以只将 onmouseover 属性添加到 运行 一次吗?

Can I add onmouseover attribute to run only once?

假设我有一个 link 如下所示:

<a class="link" href="www.rich.com" onmouseover="go(this)">Link</a>

有没有办法配置 onmouseover 事件,仅调用 go(this) 到 运行 一次 同时仍然使用内联 onmouseover=<some code>表示法? 我希望内联定义它,而不是使用 JavaScript 调用。

目前我有这个,但不是我想要的:

$(".link").one('mouseover', function(e) {
     // do something
});

之后您可以取消 onmouseover 绑定:

<a class="link" href="www.rich.com" onmouseover="go(this); this.onmouseover = null;">Link</a>

或者你可以这样做:

var check = 0;
$(".link").on('mouseover', function(e) {
    if(check == 0 ){
       // do something
       check = 1;
    }else {
       return false;
    }
});

您可以设置一个 var 来指示它是否已被触发...

var triggered = false;

$(".link").one('mouseover', function(e) {
     // do something
     if(!triggered)
     {
        triggered = true;

        // and whatever else you want to do 
     }

});

使用香草 JS:

const link = document.querySelector('.link');
link.addEventListener('mouseover',
  () = window.open('your url'),
  { once : true }
);

参考: