JQuery单击使用回车键而不是单击

时间:2013-05-27 04:26:45

标签: jquery click

我有以下代码可以正常工作...用户在文本框中输入文本,然后单击Enter保存它:

$('#tagit #btnsave').live('click',function(){
    name = $('#tagName').val();
    counter++;
    $('#taglist ol').append('<li rel="'+counter+'"><a>'+name+'</a> (<a class="remove">Remove</a>)</li>');
    $('#imgtag').append('<div class="tagview" id="view_'+counter+'"></div>');
    $('#view_' + counter).css({top:mouseY,left:mouseX});
    $('#tagit').fadeOut();
});

我想要做的是能够使用输入按钮而不必点击#btnsave按钮,所以我正在尝试:

$('#tagName').keyup(function(event){
    if(event.keyCode == 13){
        $('#tagit #btnsave').click();
    }
});

但它什么也没做 - 有更好的方法吗?

3 个答案:

答案 0 :(得分:1)

您可以在jQuery中使用.trigger()

 $('#tagit #btnsave').trigger("click");

并使用.on()代替.live()。因为它已被弃用。

答案 1 :(得分:1)

尝试 .trigger ,如

$('#tagName').keyup(function(event){
    if(event.keyCode == 13){
        $('#btnsave').trigger('click');
    }
});

并尝试避免.live功能,因为它被删除。而不是.live尝试.on喜欢

$('#tagit #btnsave').on('click',function(){

答案 2 :(得分:0)

当你将keyup事件绑定到该元素时,要小心#tagName引用的内容。只有在选中该元素时才会运行该事件。如果希望在按下enter时始终发生事件,则可以将事件绑定到窗口。