javascript - jQuery .one() 对于不同元素上的不同事件具有相同的功能

标签 javascript jquery

我的页面上有一个介绍,当按下某个键或单击某个元素时,该介绍将会消失。我将为这两个事件使用相同的函数,但由于页面被大量修改,因此无论以哪种方式触发该事件,该事件都只会触发一次。

我的功能:

function start() {
    $('.intro').remove();
    $('.something-else').show();
}

如何绑定(bind)事件:

$('body').keypress(start);
$('.intro').click(start);

如果事件是相同的,我可以说

$('body, .intro').one('click', start);

如果这两个事件发生在同一个元素上,我可以说:

$('.intro').one('click keypress', start);

如何将两者结合起来:具有不同的元素和不同的事件,并且函数只能调用一次?

最佳答案

最简单的解决方案是存储您的函数是否已被调用。

var started = false;
function start() {
    if(started) return;

    $('.intro').remove();
    $('.something-else').show();

    started = true;
}

那么你的函数只能被调用一次,其他所有调用都将被忽略。

关于javascript - jQuery .one() 对于不同元素上的不同事件具有相同的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17266085/

相关文章:

javascript - 如何在 Material UI 中删除芯片

javascript - 键值对的双数据绑定(bind)对象,用于下拉列表

javascript - 制作图像 slider 但背景图像不会响应其他属性?

javascript - 在歌曲的开头和结尾淡入/淡出音频

jquery - 如何使用忙碌图标显示 Bootstrap Modal

jquery - jQuery hover() 的第二个函数在 iOS 上不起作用

javascript - Three.js - 在 OrbitControls 和 FirstPersonControls 之间切换

javascript - meteor JS : Input value in a table is displayed twice

javascript - 为什么我的函数在我给它一个参数时返回 undefined

javascript - AngularJS - 添加每行的重复、不同计数器