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

Can I add onmouseover attribute to run only once?

本文关键字:一次 onmouseover 添加 属性 运行 我可以      更新时间:2023-09-26

假设我有一个如下链接:

<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>

Using Vanilla JS:

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

ref:我如何添加一个事件的一次点击到一个函数?

你可以设置一个变量来指示它是否被触发…

var triggered = false;
$(".link").one('mouseover', function(e) {
     // do something
     if(!triggered)
     {
        triggered = true;
        // and whatever else you want to do 
     }
});

你也可以这样做:

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