Javascript jQuery上的事件中的事件

Javascript jQuery上的事件中的事件,javascript,jquery,Javascript,Jquery,这可能是一个非常基本的问题,但我找不到答案。(我可能在寻找错误的术语…) 例如,有时我觉得需要在另一个事件中添加一个事件以共享变量。但我已经意识到,根据父事件的触发时间,可以多次触发内部事件 下面是我所说的一个基本示例: 如果在“第一次单击”中多次单击,您将看到第二个事件是如何多次触发的 我不是在寻找那种行为。我知道如何使用.on()但是。。。没有其他方法可以避免内部事件被多次触发吗 谢谢。解决方案是使用jQuery的方法 one()-将处理程序附加到元素的事件。处理程序是 每个元素最多执行一次

这可能是一个非常基本的问题,但我找不到答案。(我可能在寻找错误的术语…)

例如,有时我觉得需要在另一个事件中添加一个事件以共享变量。但我已经意识到,根据父事件的触发时间,可以多次触发内部事件

下面是我所说的一个基本示例:

如果在“第一次单击”中多次单击,您将看到第二个事件是如何多次触发的

我不是在寻找那种行为。我知道如何使用
.on()
但是。。。没有其他方法可以避免内部事件被多次触发吗


谢谢。

解决方案是使用jQuery的方法

one()
-将处理程序附加到元素的事件。处理程序是 每个元素最多执行一次

在这种情况下,它将是:

$('#link').one('click', function(){
   alert("Clicked"); //fired multiple times
   $(this).parent().hide(); 
});

只需使用
.one()
,它仅对每个元素绑定一次事件:

$('.demo').click(function () {
    $('.hidden').show(function () {
        $('#link').one('click', function () {
            alert("Clicked");
            $(this).parent().hide();
        });
    });
});

您还可以使用变量作为标志:


您可以像其他人所说的那样触发它一次,或者每次都可以解除click事件的绑定(只是一个不同的aproach)


这是另一种选择,但可能不是最干净、最简单的:)谢谢。(+1)效果很好。但泽尼思在2分钟前回答了。无论如何谢谢你@阿尔瓦罗,是的,我在完成我的答案时看到了“1个新答案”的信息。我想如果我立即发布了“Use
.one()
”,然后用fiddle链接进行编辑……但我想Zenith也可以这么说!;)不过,谢谢你的投票!
$('.demo').click(function () {
    $('.hidden').show(function () {
        $('#link').one('click', function () {
            alert("Clicked");
            $(this).parent().hide();
        });
    });
});
var clicked = false;
$('.demo').click(function(){
    clicked = true;
    $('.hidden').show(function(){
        $('#link').click(function(){
            if(clicked == true){
                alert("Clicked");
                $(this).parent().hide();
                clicked = false;
            }
        });
    });
});
$('.demo').click(function(){
    $('.hidden').show(function(){
        $('#link').click(function(){
            alert("Clicked");
            $(this).parent().hide();
            $('#link').unbind('click');
        });
    });
});