如何使功能生活

时间:2010-11-15 23:11:22

标签: jquery

我有一个输入功能,因此我的表单将在输入时提交。唯一的问题是我的表单不存在,直到我点击一个将它附加到正文的按钮。有没有办法让我的$ .Enter功能实时?提前感谢任何建议。

//submit function
function submit_chatbox(){
alert('yo');
}

$.Enter('#message',submit_chatbox);

jQuery.Enter = function(element,callback) {
    jQuery(element).bind('keypress', function(event) {
        var code=event.charCode || event.keyCode;
        if(code && code == 13) {// if enter is pressed
            callback(event.target);
            event.preventDefault(); //prevent browser from following the actual href
        };
    });
};

2 个答案:

答案 0 :(得分:5)

要使用.live(),它看起来像这样:

jQuery.Enter = function(element,callback) {
    jQuery(element).live('keypress', function(event) {
        var code=event.charCode || event.keyCode;
        if(code && code == 13) {// if enter is pressed
            callback(event.target);
            event.preventDefault(); //prevent browser from following the actual href
        };
    });
};

但是......你拥有的东西很适合插件,就像这样:

jQuery.fn.Enter = function(callback) {
    return this.live('keypress', function(event) {
        if(event.which == 13) {
            callback.call(this, event);
            event.preventDefault();
        };
    });
};

然后你会这样称呼它:

$('#message').Enter(submit_chatbox);

答案 1 :(得分:1)

只使用live代替bind就可以了,因为你正在使用支持它的jQuery版本。