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');
});
});
});