为什么javascript函数中的jQuery函数每次点击都会逐渐触发?点击足够多次,每次点击执行100次以上。
<div class="clickity" onclick="funky()">Test</div>
var x = 0;
function funky(){
$('.clickity').on('click', function(){
x += 1;
alert(x);
});
};
JsFiddle我只是好奇它为什么会这样运作。
答案 0 :(得分:1)
因为每次点击clickity
,都会调用funky
方法并在clickity
上注册新的事件监听器。你要混合两种方法,或者:
var x = 0;
function funky(){
x += 1;
alert(x);
};
<div class="clickity" onclick="funky()">Test</div>
或
var x = 0;
$('.clickity').on('click', function(){
x += 1;
alert(x);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="clickity" >Test</div>
答案 1 :(得分:0)
我不明白,为什么要在函数中插入监听器?每次单击都会向按钮添加新的侦听器。每次单击都会执行增量并添加新的侦听器。
答案 2 :(得分:0)
addEventListener
中的on
a.k.a. jQuery
有累积方面。您不是通过替换旧的,而是添加新的并保留以前的处理程序链来分配它。
答案 3 :(得分:0)
您正在将类Javascript Onclick HTML属性与jquery结合使用。
第一轮
下一轮
未来轮次