jQuery .click不断添加到事件中,而不是替换它

Mar*_*son 25 jquery click

我有以下代码块:

function testJQueryClick(){
     $('#button2').click(function(){ alert ('Debug'); return false; });       
}
Run Code Online (Sandbox Code Playgroud)

当我调用该函数一次(然后单击按钮2)时,我得到预期的警报.当我第二次调用相同的函数然后单击按钮2时,我得到两个警报,第三次我得到三个,等等.jQuery似乎.click每次都附加事件,而不是替换它.

我希望每次调用它时.click都要替换处理程序.我在jQuery文档中找不到任何确认这是预期行为的内容.

Jos*_*ber 43

您将首先调用off摆脱旧事件侦听器:

function testJQueryClick () {
    $('#button2').off('click').on('click', function () {
        alert ('Debug');

        return false;
    });      
}
Run Code Online (Sandbox Code Playgroud)

在Pen in action中看到它.