我有一个输入功能,因此我的表单将在输入时提交。唯一的问题是我的表单不存在,直到我点击一个将它附加到正文的按钮。有没有办法让我的$ .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
};
});
};
答案 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版本。