Javascript 相对于处理程序事件的keypress事件

Javascript 相对于处理程序事件的keypress事件,javascript,jquery,Javascript,Jquery,我正在表中创建一个注释系统。 每一行可以包含注释和一个文本框来添加新注释。此选项是在单击“注释”图标后创建的。(第一个事件处理程序) 我试图通过按enter键(以及使用“保存”按钮)来允许发布评论,但我遇到了按键事件的问题 它仅在第一次单击事件时触发 下面是我的问题: 如您所见,它仅在第一次单击时触发。我希望它只为当前选定/活动输入触发。可能吗 我还尝试过在输入单击事件中添加按键事件,但没有成功: 谢谢。我刚刚做了一个更新,工作提琴: 这将使用.data()跟踪每个输入的计数 首先,正确触发

我正在表中创建一个注释系统。 每一行可以包含注释和一个文本框来添加新注释。此选项是在单击“注释”图标后创建的。(第一个事件处理程序)

我试图通过按enter键(以及使用“保存”按钮)来允许发布评论,但我遇到了
按键
事件的问题

它仅在第一次单击
事件时触发

下面是我的问题:

如您所见,它仅在第一次
单击时触发。我希望它只为当前选定/活动输入触发。可能吗

我还尝试过在输入
单击
事件中添加
按键
事件,但没有成功:


谢谢。

我刚刚做了一个更新,工作提琴:

这将使用
.data()
跟踪每个输入的计数


首先,正确触发所有单击,然后在单击事件中初始化变量,使其看起来不触发。检查此链接,我认为这是因为$(文档)是全局范围。因此,当您创建全局作用域函数时,它会聚焦所有名为cont.$(this).keypress(函数(e){@Steve尝试使用类似的@DmitryKvochkin-感谢您指出这一点。我已经用一个工作版本更新了我的答案。计数器无论如何都不是问题。谢谢!!它比我想象的更简单:)
$('.demo').on('click', function (e) {
$(this).next('input')
       .slideToggle()
       .data('cont', 0)
       .on('keydown', function (e) {
           $(this).data('cont', $(this).data('cont')+1);
           if (e.which == 13) {
                $(this).next('span')
                       .html('Active input ('+$(this).data('cont')+' enters)');
           }
       });
});
$('input').click(function(){

       $('input').keypress(function(e) {
            cont++;
            //on enter
            if(e.which == 13) {
                $(this).next().html('Active input ('+cont + ' enters)');
            }

           // This only enables the first input
           e.unbind();
        });
    });