我可以只将 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 }
);
参考:
假设我有一个 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 }
);
参考: