处理程序事件的相对按键事件

时间:2013-05-23 11:10:14

标签: javascript jquery

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

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

仅针对第一个click事件触发。

这是我的问题的一个小提琴: http://jsfiddle.net/imac/9mx7K/9/

如您所见,它仅针对第一个click事件触发。我希望它仅针对当前选定/活动输入触发。可能吗?

我还尝试在输入keypress事件中添加click事件但未成功: http://jsfiddle.net/imac/9mx7K/10/

感谢。

2 个答案:

答案 0 :(得分:1)

我刚做了一个更新,工作小提琴:http://jsfiddle.net/9mx7K/14/

$('.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)');
           }
       });
});

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

答案 1 :(得分:1)

$('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();
        });
    });

See Demo