jQuery:文本框keyup触发两次

Fux*_*uxi 11 jquery bind

我有一个文本框并分配了以下功能(它是唯一分配的功能):

txt.bind("keyup",function(event){
    if(event.keyCode==13)
    {
        var nu = $("#debug").html();
        nu+="<br>enter";
        $("#debug").html(nu);
    }
});
Run Code Online (Sandbox Code Playgroud)

奇怪的是它实际上发射了两次,因此在我的调试窗口中显示"输入"两次.有谁知道是什么原因造成的?

Dav*_*ave 5

我知道已经有一段时间了,但我很惊讶没有人建议:

txt.unbind();
txt.bind("keyup",function(event){
    if(event.keyCode==13)
    {
        var nu = $("#debug").html();
        nu+="<br>enter";
        $("#debug").html(nu);
    }
});
Run Code Online (Sandbox Code Playgroud)

如果某种方式已经绑定了txt,则在新绑定之前调用unbind应该修复它.当然,最好弄清楚为什么它被绑定两次.这恰好发生在我身上,因为我不小心把我的JavaScirpt文件包含了两次.召唤解除绑定帮助我确定问题所在.


Fux*_*uxi 3

我自己发现 - txt.bind 被分配给文本框两次,因此它触发了两次。这是一个错误吗?我认为绑定一个函数总是只会触发一次..嗯