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