为什么每次点击都会多次运行此代码?

Aus*_*nro 1 javascript recursion jquery

很难确定为什么在第一次点击时调用此警报代码一次,在第二次点击时调用两次,在第三次点击时调用四次,在第四次点击时调用八次等等...

$(document).ready(function() {
    $('#preventClickDiv a[href]').click(function(e){ 
        e.preventDefault();
        alert('Prevented');
        newClick();
    });
});
function newClick(){
    $('#preventClickDiv a[href]').click(function(e){ 
        e.preventDefault();
        alert('Prevented');
        newClick();
    });
}
Run Code Online (Sandbox Code Playgroud)

sac*_*een 7

第一个块创建一个click事件,调用newClick它会创建一个调用自身的click事件...这会创建另一个事件......我想你明白了.取出函数中的click事件绑定代码.

它应该是这样的:

function newClick(){
    alert("in new click");
}
Run Code Online (Sandbox Code Playgroud)